Skip to content

Latest commit

 

History

History
77 lines (50 loc) · 4.91 KB

keywords-cpp.md

File metadata and controls

77 lines (50 loc) · 4.91 KB

C++ Keywords

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

C++98: 74 keywords

C++11: 84 keywords + 2 identifiers with special meaning

# C++ specific, not available in C89

* Added in C++11

** Added in C++11, not keywords, but identifiers with special meaning

^ Meaning changed in C++11

^^ Meaning changed in C++17

Grammar (partial):

boolean-literal: true | false

pointer-literal: nullptr

decl-specifier: storage-class-specifier | type-specifier | function-specifier | friend | typedef | constexpr

storage-class-specifier: register | static | thread_local | extern | mutable

function-specifier: inline | virtual | explicit

type-specifier: trailing-type-specifier | class-specifier | enum-specifier

trailing-type-specifier: simple-type-specifier | elaborated-type-specifier | typename-specifier | cv-qualifier

cv-qualifier: const | volatile

class-virt-specifier: final | explicit

class-key: class | struct | union

virt-specifier: override | final | new

access-specifier: private | protected | public

References: