std::meta::identifier_of, std::meta::u8identifier_of
cppreference.net에서
| 헤더 <meta>
|
||
consteval std::string_view identifier_of( std::meta::info r );
|
에 정의됨 (1) | (C++26부터) |
consteval std::u8string_view u8identifier_of( std::meta::info r );
|
(2) | (C++26부터) |
r이 나타내는 것과 연관된 식별자를 반환합니다.
1) 결과는 일반 리터럴 인코딩으로 인코딩된 문자 문자열입니다.
2) 결과는 UTF-8 문자열입니다.
결과 문자열은 다음과 같이 결정됩니다:
r가 연결 목적을 위한 typedef 이름을 가진 엔터티를 나타내는 경우, 해당 이름을 반환합니다.- 그렇지 않고,
r가 리터럴 연산자 또는 리터럴 연산자 템플릿을 나타내는 경우, 리터럴 접미사 식별자를 반환합니다. - 그렇지 않고,
r가 함수P의 함수 매개변수F를 나타내는 경우,S를 평가 컨텍스트의 한 지점에서 도달 가능하고F또는F가 특수화인 템플릿 함수를 선언하는 선언의 집합이라고 할 때,S의 선언에 의해P에 해당하는 매개변수에 대해 도입된 이름을 반환합니다. - 그렇지 않고,
r가 엔터티를 나타내는 경우, 선언된 이름을 반환합니다. - 그렇지 않고,
r가 직접 기본 클래스 관계를 나타내는 경우,std::meta::identifier_of(std::meta::type_of(r))또는std::meta::u8identifier_of(std::meta::type_of(r))을 반환합니다. - 그렇지 않고,
r가 데이터 멤버 설명 (T, N, A, W, NUA, ANN)을 나타내는 경우, 설명의 이름 N을 반환합니다.
매개변수
| r | - | 리플렉션 값 |
반환값
r가 나타내는 것의 식별자 (위에서 설명한 대로).
예외
std::meta::exception을 던집니다. 단, std::meta::has_identifier(r)가 true이고 결과 문자열이 해당 인코딩으로 표현 가능한 경우는 예외입니다.
참고
결과 V는 널 종료됩니다: V.data()[V.size()]는 '\0'임이 보장됩니다. V의 각 요소는 정적 저장 기간을 가지며 상수 표현식에서 사용 가능한 잠재적으로 고유하지 않은 객체입니다; 그러한 요소에 대한 포인터는 포인터 타입의 비타입 템플릿 매개변수에 대한 템플릿 인수로 사용하기에 적합하지 않습니다.
예제
| 이 섹션은 불완전합니다 이유: 예제 없음 |
같이 보기
(C++26) |
리플렉션이 식별자를 가진 엔터티를 나타내는지 확인합니다 (함수) |