이름공간
변수
행위

C++ 키워드

cppreference.com
< cpp
 
 
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements
Jump statements
Functions
function declaration
lambda function declaration
function template
inline specifier
exception specifications (deprecated)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
decltype specifier (C++11)
Specifiers
cv specifiers
storage duration specifiers
constexpr specifier (C++11)
auto specifier (C++11)
alignas specifier (C++11)
Initialization
Literals
Expressions
alternative representations
Utilities
Types
typedef declaration
type alias declaration (C++11)
attributes (C++11)
Casts
implicit conversions
const_cast conversion
static_cast conversion
dynamic_cast conversion
reinterpret_cast conversion
C-style and functional cast
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
class template
function template
template specialization
parameter packs (C++11)
Miscellaneous
Inline assembly
 
 

다음은 C++에 예약된 키워드의 리스트 입니다. 따라서 이 키워드들은 재정의나 오버로딩이 불가능 합니다.

alignas (since C++11)
alignof (since C++11)
and
and_eq
asm
auto(1)
bitand
bitor
bool
break
case
catch
char
char16_t (since C++11)
char32_t (since C++11)
class
compl
const
constexpr (since C++11)
const_cast
continue
decltype (since C++11)
default(1)
delete(1)
do
double
dynamic_cast
else

enum
explicit
export(1)
extern
false
float
for
friend
goto
if
inline
int
long
mutable
namespace
new
noexcept (since C++11)
not
not_eq
nullptr (since C++11)
operator
or
or_eq
private
protected
public
register
reinterpret_cast

return
short
signed
sizeof
static
static_assert (since C++11)
static_cast
struct
switch
template
this
thread_local (since C++11)
throw
true
try
typedef
typeid
typename
union
unsigned
using(1)
virtual
void
volatile
wchar_t
while
xor
xor_eq

  • (1) - meaning changed in C++11

In addition to keywords, there are two identifiers with special meaning, which may be used as names of objects or functions, but have special meaning in certain contexts. 특별한 의미를 가지는 식별자 두개가 새로운 키워드로서 추가되었습니다. 이것은 객체나 함수의 이름으로서 사용되지만 특정 문맥에서 특별한 의미를 가집니다.

override (C++11)

final (C++11)

Also, each name that contains a double underscore __ or begins with an underscore followed by an uppercase letter is always reserved to the implementation and should not be used as an identifier. Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace; such names may be used as identifiers in user-defined namespaces, as names of class members, etc.

또한 두개의 언더스코어가 포함되어 있거나 하나의 언더스코어로 시작되고 대문자 알파벳으로 이어지는 이름은 언제나 구현을 위한 예약어로 사용하고 식별자로 사용해서는 안됩니다. 언더스코어로 시작하는 이름은 전역 네임스페이스 내에서 사용자 정의 식별자의 이름으로 사용하거나 클래스 멤버의 이름 등으로 사용될 수 있습니다.


Note that and, bitor, or, xor, compl, bitand, and_eq, or_eq, xor_eq, not, and not_eq (along with the digraphs <%, %>, <:, :>, %:, and %:%:) provide an alternative way to represent standard tokens.

추가로 and, bitor, or, xor, compl, bitand, and_eq, or_eq, xor_eq, not, not_eq (<%, %>, <:, :>, %:, %:%: 이중문자 사이에 있는) 키워드들은 표준 토큰을 위한 대체표현을 제공합니다.