Namespaces
Variants

어노테이션 (C++26부터)

cppreference.net에서
 
 
C++ 언어
일반 주제
흐름 제어
조건부 실행문
if
반복문 (루프)
점프문
함수
함수 선언
람다 함수 표현식
inline 지정자
동적 예외 명세 (C++17까지*)
noexcept 지정자 (C++11)
예외
네임스페이스
타입
지정자
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
저장 기간 지정자
초기화
표현식
대체 표현
리터럴
부울 - 정수 - 부동소수점
문자 - 문자열 - nullptr (C++11)
사용자 정의 (C++11)
유틸리티
어트리뷰트 (C++11)
타입
typedef 선언
타입 별칭 선언 (C++11)
캐스트
메모리 할당
클래스
클래스별 함수 속성
explicit (C++11)
static

특수 멤버 함수
템플릿
기타
 

리플렉션이 관찰할 수 있는 방식으로 선언에 정보를 첨부합니다.

문법

어노테이션 목록은 어트리뷰트 지정자에 도입됩니다. 각 어노테이션은 =로 시작합니다.

= 상수-표현식

설명

어노테이션은 타입, 타입 별칭, 변수, 함수, void가 아닌 타입의 함수 매개변수, 네임스페이스, 열거자, 기반-지정자, 또는 비정적 데이터 멤버의 선언에 적용될 수 있습니다.

E가 std::meta::reflect_constant(expr)일 때 (여기서 expr는 상수-표현식), E는 상수 표현식이어야 합니다. E의 결과는 어노테이션의 리플렉션에 대해 std::meta::constant_of을 호출하여 관찰할 수 있습니다.

어노테이션은 동등한 값을 가지며 동일한 선언에 적용되더라도 항상 서로 구별됩니다.

[[=42, =42]] int x;
static_assert(std::meta::annotations_of(^^x).size() == 2);

[[=42]] int f();
[[=24]] int f();
static_assert(std::meta::annotations_of(^^f).size() == 2);

어노테이션으로의 치환은 즉시 문맥이 아닙니다.

예제

참고 항목

(C++26부터)
리플렉션된 엔터티에 적용되는 어노테이션을 얻습니다
(함수)
리플렉션된 엔터티에 적용되며 지정된 타입을 가진 어노테이션을 얻습니다
(함수)