Я знаю, что С++ не является строгим надмножеством C. Какие языковые функции не позволяют С++ быть надмножеством C?
Ответ 1
Слон в комнате: допустимо C, но не допустимо С++.
int typename = 1;
Замените свое любимое зарезервированное слово С++.
Ответ 2
С++ также не поддерживает массивы переменной длины, где:
int array[n];
действителен в C, но не С++. Версия С++ выше:
int *array = new int[n];
...
delete [] array;
Ответ 3
Существует специальная запись wiki, которая суммирует множество проблем.
Ответ 4
Простой пример: рассмотрите это объявление:
int f();
Это действительный C, но недействительный С++: f(3, 2, -5, "wtf");
Объяснение: в C, int f() рассматривается как int f(...) (по крайней мере, на первом сайте вызова). Объявите как int f(void), если вы не хотите, чтобы f принимал параметры.
Ответ 5
Один из моих ног - С++ не поддерживает по умолчанию int.