std::is_string_literal
출처: ko.cppreference.net
| 헤더에 정의됨 <meta>
|
||
consteval bool is_string_literal( const char* p );
|
(1) | (since C++26) |
consteval bool is_string_literal( const wchar_t* p );
|
(2) | (since C++26) |
consteval bool is_string_literal( const char8_t* p );
|
(3) | (since C++26) |
consteval bool is_string_literal( const char16_t* p );
|
(4) | (since C++26) |
consteval bool is_string_literal( const char32_t* p );
|
(5) | (since C++26) |
다음을 결정합니다: p가 가리키는 요소: 문자열 리터럴 객체.
결과는 다음과 같이 결정됩니다:
- 만약
p가 상수 표현식에 사용할 수 없는 객체를 가리키면,false를 반환합니다. - 그렇지 않고, 만약
p가 문자열 리터럴 객체의 하위 객체를 가리키면,true를 반환합니다. - 그렇지 않으면,
false를 반환합니다.
매개변수
| p | - | 문자 포인터 |
반환값
true 만약 p가 정적으로 문자열 리터럴을 가리키는 것으로 결정되면, false 그렇지 않으면.
예제
이 코드 실행
#include <meta>
int main()
{
constexpr const char* p = "";
constexpr const char a[] = "";
static_assert(std::is_string_literal(p));
static_assert(!std::is_string_literal(a));
static_assert(std::is_string_literal(LR"(wcahr_t)"));
static_assert(std::is_string_literal(R"(\N{CAT})"));
}
참고 항목
(C++26) |
컴파일 타임 문자열을 정적 저장소로 승격하고, 정적 문자열의 첫 번째 문자를 가리키는 포인터를 반환합니다. (함수 템플릿) |