std::meta::has_static_storage_duration, std::meta::has_thread_storage_duration, std::meta::has_automatic_storage_duration
cppreference.net에서
| 다음 헤더에 정의됨 <meta>
|
||
consteval bool has_static_storage_duration( std::meta::info r );
|
(1) | (since C++26) |
consteval bool has_thread_storage_duration( std::meta::info r );
|
(2) | (since C++26) |
consteval bool has_automatic_storage_duration( std::meta::info r );
|
(3) | (since C++26) |
r가 지정된 저장 기간을 가진 객체 또는 변수인지 결정합니다.
매개변수
| r | - | 리플렉션 값 |
반환값
true만약 r가 나타내는 것이 지정된 저장 기간을 가지면; 그렇지 않으면 false입니다.
참고
r가 객체 또는 변수를 나타내지 않으면 결과는 false입니다.
예제
다음에서 미리보기 가능: Compiler Explorer.
이 코드 실행
#include <meta>
int a;
static_assert(std::meta::has_static_storage_duration(^^a));
static_assert(!std::meta::has_thread_storage_duration(^^a));
static_assert(!std::meta::has_automatic_storage_duration(^^a));
thread_local int b;
static_assert(!std::meta::has_static_storage_duration(^^b));
static_assert(std::meta::has_thread_storage_duration(^^b));
static_assert(!std::meta::has_automatic_storage_duration(^^b));
int main()
{
[[maybe_unused]] int c;
static_assert(!std::meta::has_static_storage_duration(^^c));
static_assert(!std::meta::has_thread_storage_duration(^^c));
static_assert(std::meta::has_automatic_storage_duration(^^c));
}
같이 보기
| 리플렉션된 엔터티가 링키지 를 가지는지 확인합니다.(함수) |