Namespaces
Variants

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의 각 요소는 정적 저장 기간을 가지며 상수 표현식에서 사용 가능한 잠재적으로 고유하지 않은 객체입니다; 그러한 요소에 대한 포인터는 포인터 타입의 비타입 템플릿 매개변수에 대한 템플릿 인수로 사용하기에 적합하지 않습니다.

예제

같이 보기

리플렉션이 식별자를 가진 엔터티를 나타내는지 확인합니다
(함수)