Является ли C ++ 11 (C ++ 0x) полным супер-набором C ++ 03? - PullRequest
16 голосов
/ 09 июня 2011

C++ считается (почти) супер набором C;но все же есть определенные вещи, которые работают в C, а не в C++.

Есть ли какая-либо функция / средство, которое является действительным C++03, но не работает в C++11?

Ответы [ 2 ]

23 голосов
/ 09 июня 2011

Есть ли какая-либо функция / средство, которое действительный C ++ 03, но не работающий в C ++ 11

Есть несколько несовместимостей:

  • export template удалено (не устарело, действительно удалено)
  • вы больше не можете использовать auto в качестве спецификатора хранилища
  • имеются новые зарезервированные слова: alignof, char16_t, char32_t, constexpr, decltype, noexcept, nullptr, static_assert и thread_local

также, для будущих версий:

  • std::auto_ptr устарело
  • спецификации броска устарели

Может быть, я скучаю по другим, но если ваш код использует их, вам придется это исправить.

Практически все возможности C ++ 2003 остаются такими же или более точно определены для реализаций компилятора в C ++ 2011.

2 голосов
/ 09 июня 2011

Нет, это не строгий суперсет. extern template и auto, чтобы назвать несколько отличий ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...