1. ホーム
  2. c++

[解決済み] C++14はC++に新しいキーワードを追加しているのか?

2023-01-09 08:48:44

質問

C++ 標準化委員会は、言語に新しいキーワードを追加することを避ける傾向にありますが、C++11 ではそのようなことはありませんでした。いくつかの例を挙げます。

constexpr
decltype
thread_local
auto // New usage
noexcept
nullptr
static_assert
alignof
alignas

C++14で導入された新しいキーワードはありますか?

どのように解決するのですか?

N3936(C++14)の表4(キーワード)です。

alignas           continue          friend            register          true
alignof           decltype          goto              reinterpret_cast  try
asm               default           if                return            typedef
auto              delete            inline            short             typeid
bool              do                int               signed            typename
break             double            long              sizeof            union
case              dynamic_cast      mutable           static            unsigned
catch             else              namespace         static_assert     using
char              enum              new               static_cast       virtual
char16_t          explicit          noexcept          struct            void
char32_t          export            nullptr           switch            volatile
class             extern            operator          template          wchar_t
const             false             private           this              while
constexpr         float             protected         thread_local
const_cast        for               public            throw

N3337 (C++11) の表 4。

alignas           continue          friend            register          true
alignof           decltype          goto              reinterpret_cast  try
asm               default           if                return            typedef
auto              delete            inline            short             typeid
bool              do                int               signed            typename
break             double            long              sizeof            union
case              dynamic_cast      mutable           static            unsigned
catch             else              namespace         static_assert     using
char              enum              new               static_cast       virtual
char16_t          explicit          noexcept          struct            void
char32_t          export            nullptr           switch            volatile
class             extern            operator          template          wchar_t
const             false             private           this              while
constexpr         float             protected         thread_local
const_cast        for               public            throw

...これは、"no" を言うための長ったらしい方法です。

( overridefinal は特別な意味を持つ識別子で、表3に示すとおりです。 and などは、特定の演算子および区切り記号の代替表現であり、表 5 に記載されています。どちらの表も C++11 と C++14 の間で変更されていません)。