std::is_string_literal
Von de.cppreference.net
| Definiert im Header <meta>
|
||
consteval bool is_string_literal( const char* p );
|
(1) | (seit C++26) |
consteval bool is_string_literal( const wchar_t* p );
|
(2) | (seit C++26) |
consteval bool is_string_literal( const char8_t* p );
|
(3) | (seit C++26) |
consteval bool is_string_literal( const char16_t* p );
|
(4) | (seit C++26) |
consteval bool is_string_literal( const char32_t* p );
|
(5) | (seit C++26) |
Ermittelt, ob p auf ein Element eines String-Literal-Objekts zeigt.
Das Ergebnis wird wie folgt ermittelt:
- Falls
pauf ein Objekt zeigt, das in konstanten Ausdrücken nicht verwendbar ist, wirdfalsezurückgegeben. - Andernfalls, falls
pauf ein Unterobjekt eines String-Literal-Objekts zeigt, wirdtruezurückgegeben. - Andernfalls wird
falsezurückgegeben.
Parameter
| p | - | ein Zeiger auf ein Zeichen |
Rückgabewert
true falls p statisch als in ein String-Literal zeigend bestimmt wird, false andernfalls.
Beispiel
Diesen Code ausführen
#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})"));
}
Siehe auch
(C++26) |
befördert eine Compile-Zeit-Zeichenkette in den statischen Speicher und gibt einen Zeiger auf das erste Zeichen der statischen Zeichenkette zurück (Funktionsschablone) |