C++에는 총 95개의 예약어(reserved words)가 있습니다. 이 예약어들은 성격에 따라 여러 그룹으로 나눌 수 있는데, 각 그룹의 유래를 이해하면 C++ 언어의 발전 과정을 한눈에 파악할 수 있습니다.
C++ 예약어의 세 가지 그룹
1. C 언어에서 계승된 예약어 — 32개
첫 번째 그룹은 C 프로그래밍 언어에 이미 존재하던 키워드로, C++이 탄생하면서 그대로 이어받은 것들입니다. int, char, if, for, while, struct 등 C의 기본 문법을 구성하는 핵심 키워드들이 여기에 속합니다.
2. C++에서 새로 추가된 예약어 — 30개
두 번째 그룹은 C에는 없었고 C++에서 새롭게 도입된 30개의 키워드입니다. 객체 지향 프로그래밍과 예외 처리를 지원하기 위해 추가된 class, public, private, virtual, try, catch, new, delete, template, namespace 등이 대표적입니다.
3. 연산자 대체 표기용 예약어 — 11개
세 번째 그룹은 표준 ASCII 문자 집합을 사용할 때는 필수적이지 않지만, C++ 연산자들을 더 읽기 쉬운 형태로 대체하거나, C++에 필요한 특수 문자가 없는 문자 집합 환경에서도 프로그래밍할 수 있도록 만들어진 11개의 키워드입니다. and(&&), or(||), not(!), xor(^), bitand(&), bitor(|), compl(~) 등이 여기에 해당합니다.
C++ 전체 예약어 목록 (95개)
아래는 C++의 모든 예약어를 정리한 전체 목록입니다. 일부 키워드는 도입 시기를 함께 표시했습니다.
| alignas (C++11) | alignof (C++11) | and |
| and_eq | asm | atomic_cancel (TM TS) |
| atomic_commit (TM TS) | atomic_noexcept (TM TS) | auto |
| bitand | bitor | bool |
| break | case | catch |
| char | char16_t (C++11) | char32_t (C++11) |
| class | compl | concept (C++20) |
| const | constexpr (C++11) | const_cast |
| continue | co_await (코루틴 TS) | co_return (코루틴 TS) |
| co_yield (코루틴 TS) | decltype (C++11) | default |
| delete | do | double |
| dynamic_cast | else | enum |
| explicit | export | extern |
| false | float | for |
| friend | goto | if |
| import (모듈 TS) | inline | int |
| long | module (모듈 TS) | mutable |
| namespace | new | noexcept (C++11) |
| not | not_eq | nullptr (C++11) |
| operator | or | or_eq |
| private | protected | public |
| register | reinterpret_cast | requires (C++20) |
| return | short | signed |
| sizeof | static | static_assert (C++11) |
| static_cast | struct | switch |
| synchronized (TM TS) | template | this |
| thread_local (C++11) | throw | true |
| try | typedef | typeid |
| typename | union | unsigned |
| using | virtual | void |
| volatile | wchar_t | while |
| xor | xor_eq |
마무리
C++의 95개 예약어는 C에서 물려받은 기본기, C++ 고유의 객체 지향·예외 처리 기능, 그리고 가독성 향상을 위한 연산자 대체 표기라는 세 축으로 구성되어 있습니다. 또한 C++11, C++20 등 표준 버전이 올라갈 때마다 constexpr, concept, co_await 같은 새로운 키워드가 지속적으로 추가되고 있으므로, 최신 표준 동향도 함께 살펴보는 것이 좋습니다.