Ключові слова C++ Стандарт мови C++98 розрізняє наступні ключові слова:
and and_eq asm auto bitand bitor bool break case catch char class compl const const_cast continue default delete do | double dynamic_cast else enum explicit export extern false float <code>for</code> friend goto if inline int long mutable namespace new | not not_eq operator or or_eq private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template | valign="top" | this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq
Окремі компілятори можуть (в не стандартних режимах компіляції) обробляти також інші ключові слова, включаючи cdecl, far, fortran, huge, interrupt, near, pascal, typeof. Старі компілятори можуть розпізнавати ключове слово overload, що є анахронізмом, який був вилучений з мови.
У більш новій версії стандарту мови C++, відомій як C++11, додані наступні ключові слова: alignas alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local
C++11 також містить два спеціальних зарезервованих слова, які в конкретних ситуаціях можуть використовуватись як ключові слова, але зазвичай використовуються як ідентифікатори в інших випадках: final override Не рекомендується їх використання у вигляді ідентифікаторів при написанні нового коду.
Ключові слова стандарту C++98: auto, default, delete і using''' мають додаткові властивості чи змінили своє призначення в стандарті C++11.
Деякі старі C++98 компілятори можуть не розпізнати деякі або усі з наступних ключових слів: and and_eq bitand bitor bool catch compl const_cast dynamic_cast explicit export false mutable namespace not not_eq or or_eq reinterpret_cast static_cast template throw true try typeid typename using wchar_t xor xor_eq
У новій версії стандарту мови C++20 додані наступні ключові слова: char8_t concept consteval constinit co_await co_return co_yield export import module requires