std::is_string_literal
De fr.cppreference.net
| Défini dans l'en-tête <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) |
Détermine si p pointe vers un élément d'un objet littéral de chaîne.
Le résultat est déterminé comme suit :
- Si
ppointe vers un objet qui n'est pas utilisable dans des expressions constantes, renvoiefalse. - Sinon, si
ppointe vers un sous-objet d'un objet littéral de chaîne, renvoietrue. - Sinon, renvoie
false.
Paramètres
| p | - | un pointeur de caractère |
Valeur de retour
true si p est statiquement déterminé comme pointant dans un littéral de chaîne, false sinon.
Exemple
Exécuter ce code
#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})"));
}
Voir aussi
(C++26) |
promeut une chaîne de compilation en stockage statique, renvoyant un pointeur vers le premier caractère de la chaîne statique (modèle de fonction) |