Namespaces
Variants

std::define_static_object

cppreference.net에서
 
 
 
리플렉션 라이브러리
 
리플렉션 타입 및 질의
리플렉션 질의
리플렉션 레이아웃 질의
타입 속성
타입 속성 질의
 
헤더에 정의됨 <meta>
template< class T >
consteval const remove_cvref_t<T>* define_static_object( T&& t );
(C++26부터)

값을 정적 저장소로 승격합니다.

다음과 동등:

using U = std::remove_cvref_t<T>;
if constexpr (std::meta::is_class_type(^^U) || std::meta::is_union_type(^^U))
{
    std::meta::info obj = std::meta::reflect_constant(std::forward<T>(t));
    return std::addressof(std::meta::extract<const U&>(obj));
}
else if constexpr (std::meta::is_array_type(^^U))
{
    std::meta::info obj = std::meta::reflect_constant_array(std::forward<T>(t));
    return std::addressof(std::meta::extract<const U&>(obj));
}
else
{
    return std::define_static_array(std::span(std::addressof(t), 1)).data();
}

매개변수

t - 구조적 타입

의 값반환값

값이 t인 템플릿 매개변수 객체를 가리키는 포인터입니다.

참고

템플릿 매개변수 객체로서, 결과 객체는 정적 저장 기간을 갖습니다. 템플릿 인자 동등 값은 동일한 객체에 해당합니다.

결과 객체는 잠재적으로 고유하지 않은 객체입니다. 단, std::remove_cvref_t<T>이 스칼라 타입인 경우입니다.

만약 t이 템플릿 매개변수 객체이면, 결과는 동일한 객체를 가리킵니다.

기능 테스트 매크로 값 표준 기능
__cpp_lib_define_static 202506L (C++26) std::define_static_object

예제

참조 항목

컴파일 시간 배열을 정적 저장소로 승격하여 정적 배열의 span을 반환합니다
(함수 템플릿)
컴파일 시간 문자열을 정적 저장소로 승격하여 정적 문자열의 첫 번째 문자를 가리키는 포인터를 반환합니다
(함수 템플릿)
값 또는 템플릿 매개변수 객체를 나타내는 리플렉션을 반환하며, 상수 템플릿 인수로 사용하기에 적합합니다
(함수 템플릿)