¿Cuáles son las diferencias incompatibles entre C (99) y C ++ (11)?
Esta pregunta fue activada por respuesta (s) a unpost de Herb Sutter donde explicó la decisión de MS de no admitir / hacer un compilador C99, sino simplemente ir con las características C (99) que están en el estándar C ++ (11) de todos modos.
(...) C es importante y merece al menos un poco de atención.
Hay MUCHO código existente que es válido C pero no es válido C ++. Ese código no es probable que sea reescrito (...)
Como solo programo en MS C ++, realmente no conozco bien la C "pura", es decir, no tengo una idea de qué detalles de C ++ - el lenguaje que estoy usando no está en C (99) y tengo poco pistas donde algún código C99 no funcionaría como está en un compilador de C ++.
Tenga en cuenta que sólo sé sobre el C99restrict
palabra clave que para míparece para tener una aplicación muy estrecha y sobre arreglos de longitud variable (de los cuales no estoy seguro de cuán extendidos o importantes son).
Además, me interesa mucho si existen diferencias semánticas importantes o errores, es decir, el código C (99) quecompilar bajo C ++ (11) pero haga algo diferente con el compilador de C ++ que con el compilador de C.
Enlaces rápidos: recursos externos de las respuestas:
Página de WikipediaComparación de David R. Tribble (desde 2001)Estándar C ++ 11:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3376.pdf (sección C.1)