C++ 11(C++ 0x)是C++ 03的完整超集吗?

iam*_*ind 16 c++ c++11

C++被认为(几乎)超级集C; 但仍然有某些东西可以运作C而不是运作C++.

是否有任何功能/设施有效C++03但无效C++11

Kla*_*aim 23

是否有任何功能/工具是有效的C++ 03但不适用于C++ 11?

几个不可能的:

  • export template 已删除(未弃用,已删除)
  • 你不能再auto用作存储说明符了
  • 有新的保留字:alignof,char16_t,char32_t,constexpr,decltype,noexcept,nullptr,static_assertthread_local

此外,对于未来的版本:

  • std::auto_ptr 已弃用
  • throw规范已弃用

也许我错过了其他人,但如果你的代码使用了那些,你就必须修复它.

对于C++ 2011中的编译器实现,几乎所有C++ 2003功能仍然相同或更精确地指定.

  • `std :: auto_ptr`**尚未被删除.它已被弃用.删除会破坏**远**代码! (7认同)
  • @Matthieu:`export`已被删除.EDG团队是提出删除它的提议的团队.他们是集体行为. (3认同)
  • @Klaim:虽然大多数TR1使其成为标准(几乎)完整,但伪随机数生成被广泛修改(足够广泛以至于我很想说"替换"而不是"修改"). (2认同)