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
|
예제
| 이 섹션은 불완전합니다 이유: 예제 없음 |
참조 항목
(C++26) |
컴파일 시간 배열을 정적 저장소로 승격하여 정적 배열의 span을 반환합니다 (함수 템플릿) |
(C++26) |
컴파일 시간 문자열을 정적 저장소로 승격하여 정적 문자열의 첫 번째 문자를 가리키는 포인터를 반환합니다 (함수 템플릿) |
(C++26) |
값 또는 템플릿 매개변수 객체를 나타내는 리플렉션을 반환하며, 상수 템플릿 인수로 사용하기에 적합합니다 (함수 템플릿) |