Punctuation
From cppreference.net
다음은 C++의 구두점 기호들입니다. 각 기호의 의미는 링크된 페이지에서 자세히 설명되어 있습니다.
목차 |
전처리 연산자
전처리 연산자는 전처리기 에 의해 인식됩니다.
# (포함 % : )
- 전처리 지시문 을 소개합니다.
- 문자열화를 위한 전처리 연산자 .
## (포함 % : % : )
- 토큰 붙여넣기를 위한 전처리 연산자 .
단일 문자 연산자 및 구분자
{ 및 } (포함 < % 및 % > )
| (since C++11) |
- 집계 초기화 (C++11까지) 목록 초기화 (C++11 이후) 구문의 일부인 초기화자 .
- 네임스페이스 정의 에서 네임스페이스 본문을 구분합니다.
- 언어 링크 지정 에서 선언들을 구분합니다.
|
(C++20부터) |
[ 와 ] (포함하여 < : 및 : > )
- 첨자 연산자 ; operator [ ] 의 일부로서 연산자 오버로딩 에서 사용됨.
- 배열 선언자 의 일부로서 선언 또는 타입 식별자 에서 사용됨 (예: new 표현식 에서).
- new [ ] 연산자의 일부로서 연산자 오버로딩 (할당 함수) 에서 사용됨.
- delete [ ] 연산자의 일부로서 delete 표현식 및 연산자 오버로딩 (해제 함수) 에서 사용됨.
| (C++11부터) | |
|
(C++17부터) |
|
(C++26부터) |
( 그리고 )
- 표현식에서 그룹화를 나타냅니다 .
- 함수 호출 연산자 ; operator ( ) 의 일부로서 연산자 오버로딩 에 사용됩니다.
- 함수 스타일 타입 캐스트 에서 표현식/초기화자를 구분합니다.
-
static_cast,const_cast,reinterpret_cast, 또는dynamic_cast에서 표현식을 구분합니다. - 다음 연산자의 피연산자를 구분합니다:
| (C++11 이후) |
- 배치 new 표현식 에서 배치 인수를 구분합니다.
- new 표현식 에서 타입 ID를 선택적으로 구분합니다.
- new 표현식 에서 초기화자를 구분합니다.
- C-스타일 캐스트 에서 타입 ID를 구분합니다.
- 선언 또는 타입 ID 에서 그룹화를 나타냅니다.
- 매개변수 목록을 구분합니다
-
- 함수 선언자 function declarator ( 선언 또는 type-id 내부)
| (C++11부터) | |
| (C++17부터) | |
| (C++20부터) |
- 직접 초기화 구문의 일부로 초기자 에 사용됩니다.
- asm 선언 에서 문자열 리터럴을 구분합니다.
- 멤버 초기자 목록 에서 기본 클래스나 멤버에 대한 초기자를 구분합니다.
- 선택문이나 반복문의 제어 절을 구분합니다. 이는 다음을 포함합니다:
| (C++11부터) |
- 핸들러 에서 매개변수 선언을 구분합니다.
- 함수형 매크로 정의 에서 매크로 매개변수를 구분합니다.
- 함수형 매크로 호출 에서 매크로 인수를 구분하거나 쉼표가 인수 구분자로 해석되는 것을 방지합니다.
-
defined,__has_include(since C++17) ,__has_cpp_attribute(since C++20) 전처리 연산자의 일부입니다.
|
(C++11부터) | ||
|
(C++14부터) | ||
|
(C++17부터) | ||
|
(C++20부터) |
;
- 끝을 나타내십시오
-
- statement 하나
- declaration 또는 member declaration 하나
| (C++20부터) |
- for 문 의 조건 과 문장 을 분리합니다.
:
- 조건 연산자 의 일부입니다.
- 레이블 선언 의 일부입니다.
- 클래스 정의 의 base-clause 에서 기본 클래스 를 도입합니다.
- 멤버 명세에서 접근 지정자 의 일부입니다.
- 비트 필드 멤버 선언 에서 너비를 지정합니다.
- 생성자 정의에서 멤버 초기화 리스트를 도입합니다.
| (C++11부터) | |
|
(C++17부터) |
| (C++20부터) |
?
- 조건 연산자 의 일부입니다.
.
|
(C++20부터) |
~ (including compl )
- 단항 보수 연산자 (일명 비트별 NOT 연산자) ; operator~ 의 일부로서 연산자 오버로딩 에 포함됨.
- 식별자 표현식 의 일부로 소멸자 또는 의사 소멸자의 이름을 지정함.
! (including not )
|
(C++23부터) |
+
- 단항 플러스 연산자 ; operator + 의 일부로서 연산자 오버로딩 에 포함됨.
- 이항 플러스 연산자 ; operator + 의 일부로서 연산자 오버로딩 에 포함됨.
-
- 단항 마이너스 연산자 ; operator - 의 일부로서 연산자 오버로딩 에 포함됨.
- 이항 마이너스 연산자 ; operator - 의 일부로서 연산자 오버로딩 에 포함됨.
*
- 역참조 연산자 ; 연산자 오버로딩 에서 operator * 의 일부.
- 곱셈 연산자 ; 연산자 오버로딩 에서 operator * 의 일부.
- 선언자 또는 타입 식별자 에서 포인터 연산자 또는 멤버 포인터 연산자의 일부.
|
(C++17부터) |
/
%
^ (포함 xor )
- 비트 XOR 연산자 ; operator ^ 의 일부로서 연산자 오버로딩 에 포함됨.
& (포함 bitand )
- 주소 연산자 ; 연산자 오버로딩 에서 operator & 의 일부.
- 비트 AND 연산자 ; 연산자 오버로딩 에서 operator & 의 일부.
- 선언자 또는 타입 ID 에서의 Lvalue 참조 연산자.
| (C++11부터) |
| (포함 bitor )
=
- 단순 할당 연산자 ; operator = 의 일부로서 연산자 오버로딩 에 포함되며, 특별 멤버 함수일 수 있음 ( 복사 할당 연산자 또는 이동 할당 연산자 (C++11부터) ).
- 복사 초기화 및 집계 초기화 (C++11 이전) 복사 목록 초기화 (C++11부터) 구문의 일부로서 초기화자 에 사용됨.
- 함수 선언 에서 기본 인수 를 정의할 때 사용됨.
- 템플릿 매개변수 목록 에서 기본 템플릿 인수 를 정의할 때 사용됨.
- 네임스페이스 별칭 정의 에서 별칭과 대상 네임스페이스를 구분할 때 사용됨.
- 열거형 정의 에서 열거자의 값을 정의할 때 사용됨.
- 순수 가상 함수 선언 에서 pure-specifier 의 일부로 사용됨.
| (C++11부터) | |
|
(C++20부터) |
<
- 미만 연산자 ; operator < 의 일부로서 연산자 오버로딩 에 포함됨.
-
static_cast,const_cast,reinterpret_cast, 또는dynamic_cast에서 타입 식별자를 도입함. - 템플릿 인자 목록 을 도입함.
- 템플릿 매개변수 목록 을 도입함.
| (since C++20) |
- template <> 의 일부로 사용되며 템플릿 특수화 선언 에서 사용됩니다.
- 헤더 이름을 도입하는 데 사용됩니다
| (C++17부터) | |
|
(C++20부터) |
>
- 비교 연산자 ; operator > 의 일부이며 연산자 오버로딩 에 포함됩니다.
-
static_cast,const_cast,reinterpret_cast, 또는dynamic_cast는 type-id의 끝을 나타냅니다. - 템플릿 인수 목록 의 끝을 나타냅니다.
- 템플릿 매개변수 목록 의 끝을 나타냅니다.
| (C++20부터) |
- template <> 의 일부로 사용되며, 템플릿 특수화 선언 에서 사용됩니다.
- 헤더 이름의 끝을 나타내는 데 사용됩니다.
| (C++17부터) | |
|
(C++20부터) |
,
-
- 선언에서의 선언자 목록 declaration
- 초기화에서의 initialization 초기자 목록
- 배치 new에서의 배치 인수 목록 placement new
- 함수 호출 표현식에서의 인수 목록 function call expression
- 열거형 선언에서의 열거자 목록 enum declaration
- 클래스 선언에서의 base class 기본 클래스 목록 class declaration
- 생성자 정의에서의 멤버 초기화 목록 constructor definition
- 함수 매개변수 목록 function parameter list
- 템플릿 매개변수 목록 template parameter list
- 템플릿 인수 목록 template argument list
|
(C++11부터) |
|
(C++17부터) |
|
(C++23부터) |
-
- 함수형 매크로 정의에서의 매크로 매개변수 목록
- 함수형 매크로 호출에서의 매크로 인수 목록 , 인수의 괄호 사이에 있는 경우를 제외하고
|
(C++11부터) |
다중 문자 연산자 및 구분자
웹페이지의 텍스트를 한국어로 번역합니다: HTML 태그나 속성은 번역하지 마십시오. 원본 서식을 유지하십시오.
,
,
- 함수 선언자의 매개변수 목록 에서 또는 람다 표현식 (C++11부터) 또는 사용자 정의 추론 가이드 (C++17부터) 에서 가변 인자 함수 를 나타냅니다.
- 핸들러 에서 모든 예외를 처리하는 핸들러를 나타냅니다.
| (C++11부터) | |
|
(C++26부터) |
::
- 스코프 해결 연산자
-
- 한정된 이름
- 멤버에 대한 포인터 선언
-
new또는delete표현식, 전역 할당 또는 해제 함수만 검색됨을 나타내기 위해
|
(since C++11) |
|
(since C++17) |
. *
- >
| (C++11부터) | |
|
(C++17부터) |
|
(C++20부터) |
- > *
- 멤버 포인터 접근 연산자 ; operator - > * 의 일부이며, 연산자 오버로딩 에서 다룹니다.
+ =
- =
* =
/ =
% =
^ = (포함 xor_eq )
& = (포함 and_eq )
| = (포함 or_eq )
==
! = (포함하여 not_eq )
<=
- 작거나 같음 연산자 ; operator <= 의 일부이며, 연산자 오버로딩 에서 다룹니다.
>=
- 크거나 같음 연산자 ; operator >= 의 일부이며, 연산자 오버로딩 에서 다룹니다.
<=>
|
(C++20부터) |
&& (포함 and )
- 논리 AND 연산자 ; operator && 의 일부이며 연산자 오버로딩 에서 다룹니다.
| (C++11부터) |
|| (포함 or )
- 논리적 OR 연산자 ; operator || 의 일부이며 연산자 오버로딩 에서 다룹니다.
<<
- 비트 시프트 연산자 ; operator << 의 일부로서 연산자 오버로딩에서 사용됨 ( 비트 연산자 또는 스트림 삽입 연산자 ).
>>
- 비트 시프트 연산자 ; operator >> 의 일부로서 연산자 오버로딩에서 사용됨 ( 비트 연산자 또는 스트림 추출 연산자 ).
<<=
>>=
++
--
참고문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
- 5.12 연산자와 구분자 [lex.operators]
- C++20 표준 (ISO/IEC 14882:2020):
-
- 5.12 연산자와 구분자 [lex.operators]
- C++17 표준(ISO/IEC 14882:2017):
-
- 5.12 연산자와 구분자 [lex.operators]
- C++14 표준(ISO/IEC 14882:2014):
-
- 2.13 연산자와 구분자 [lex.operators]
- C++11 표준 (ISO/IEC 14882:2011):
-
- 2.13 연산자와 구분자 [lex.operators]
- C++03 표준(ISO/IEC 14882:2003):
-
- 2.12 연산자와 구분자 [lex.operators]
- C++98 표준 (ISO/IEC 14882:1998):
-
- 2.12 연산자와 구분자 [lex.operators]
참고 항목
| Alternative representations | 특정 연산자에 대한 대체 표기법 |
|
C documentation
for
Punctuation
|
|