Viniendo a esta página tarde, la propia pregunta ha sido respondida por Chris Stratton, pero es importante para corregir un par de cosas Chris Becke poner aquí que son conceptos erróneos comunes con las personas que no están familiarizados con C++:
- C++ no crea código o datos implícitos, solo lo que solicita. Incluso para un programador promedio de C++, no habrá código ni datos adicionales. Lo descubrí conociendo el asma detrás de C++, pero solo leí los libros de Scott Meyers, es lo suficientemente bueno.
- Las excepciones no solo son opcionales en C++, sino que se puede excluir su código completo para la mayoría de las herramientas disponibles. Esto de hecho se hace en aplicaciones RT.
Esto es para abordar los conceptos erróneos publicados aquí. Para agregar más sin embargo:
1) Un programador de C++ novato puede hacer tonterías, pero un programador de C principiante que intenta implementar por sí mismo el polimorfismo y la herencia como hace una y otra vez en el kernel simplemente sin llamarlo así, hará muchas tonterías más ineficientes e indegogables.
2) Diciendo eso, lo único que se puede crear en la base C++ es un puntero virtual SI LO NECESITA y especifique "virtual", y luego también los programadores C solo crean un puntero manipularlo por sí mismos agregar búsqueda tablas y obtener errores mucho más difíciles en la línea debido a ello. Como siempre en C++, si no menciona "virtual", ni siquiera obtiene este puntero. La herencia y la encapsulación son, por supuesto, completamente libres de gastos generales.
3) C++ crea la misma cantidad de ASM y la memoria como C si no lo hace EXPLICITAMENTE solicitar características especiales, pero hay un caso común cuando C++ es más eficiente - al pasar punteros de función. Si usas los funtores de C++, puedes alinear la función puntiaguda. Esto es EXTREMADAMENTE útil en aplicaciones integradas.
4) Si RT integrado usa C++, ¿por qué no funciona Linux? Solo por mitos, así que lea este mensaje detenidamente y consulte scott meyers o mejor aún el asm. Tengo 20 años en RT y tuve la misma incredulidad en C++ cuando cambié hace 14 años, pero los hechos no confirman tal desconfianza.
TL; DR - es muy fácil escribir de manera eficiente y en un caso común un código más eficiente en C++, estudios, mucha experiencia en la industria y libros abundan en este tema.
Si está buscando la inclusión de mainline, C++ es la forma más segura de que su parche sea ignorado. – SingleNegationElimination