¿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.

Unoel comentarista respondió:

(...) 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)

Respuestas a la pregunta(4)

Su respuesta a la pregunta