Is there any sort of benefit to be gained by porting the code to C++?
Penso che la frase chiave qui sia "porting". Che cosa vuoi dire con questo? Se veramente port il codice in C ++, fai uso delle caratteristiche del C ++ come i template ecc., C'è la possibilità che questo acceleri il codice. (Ad esempio, C ++ ' std::sort()
è noto per essere più veloce di C qsort()
perché un compilatore C ++ può incorporare le chiamate alla funzione di confronto.) OTOH, gli algoritmi utilizzati sono probabilmente adattati alla programmazione in stile C, quindi potrebbe essere che l'unico modo per ottenere un guadagno di velocità misurabile sarebbe iniziare da zero e implementare e lucidare per anni per far brillare la libreria in C ++. Tuttavia, un compilatore C ++ può eseguire più verifiche in fase di compilazione per il codice scritto in stile C ++, in modo da ottenerlo.
Ma se si fa compilare il codice C solo con un compilatore C ++, l'attività è discutibile. Dato il codice C, un compilatore C ++ non può rendere (m) alcuna ipotesi su cui un compilatore C non può fare basare le sue ottimizzazioni. E il codice in stile C è incline a chiudere il compilatore (cast rigido, nessun modello, ecc.), Quindi è improbabile che tu possa ottenere una sicurezza di tipo migliorata in fase di compilazione.
What are the downsides that might cancel out these benefits?
In entrambi i casi, è necessario modificare il codice. Ciò introdurrà bug e incompatibilità. Solo questo è un grosso svantaggio che non sarà mai superato dalle magre possibilità di miglioramenti sopra elencati.