std::literals::string_literals::operator""s
De cppreference.com
<tbody>
</tbody>
| Déclaré dans l'en-tête <string>
|
||
string operator "" s(const char *str, std::size_t len); |
(1) | (depuis C++14) |
u8string operator "" s(const char8_t *str, std::size_t len); |
(2) | |
u16string operator "" s(const char16_t *str, std::size_t len); |
(3) | (depuis C++14) |
u32string operator "" s(const char32_t *str, std::size_t len); |
(4) | (depuis C++14) |
wstring operator "" s(const wchar_t *str, std::size_t len); |
(5) | (depuis C++14) |
Forme une chaîne de caractères du type désiré.
1) retourne
std::string{str, len}2) retourne
std::u8string{str, len}3) retourne
std::u16string{str, len}4) retourne
std::u32string{str, len}5) retourne
std::wstring{str, len}Paramètres
| str | - | pointeur vers le début de la chaîne de caractères brute |
| len | - | longueur de la chaîne de caractères brute |
Valeur de retour
La chaîne de caractères.
Notes
Ces opérateurs sont déclarés dans l'espace de nommage std::literals::string_literals, où literals et string_literals sont inline. L'accès à ces opérateurs peut être obtenu via using namespace std::literals, using namespace std::string_literals, et using namespace std::literals::string_literals.
std::chrono::duration définit également operator""s, pour représenter les secondes littérales, mais c'est une littérale arithmétique: 10.0s et 10s représentent dix secondes, mais "10"s est une chaîne de caractères.
Exemple
#include <string>
#include <iostream>
int main()
{
using namespace std::string_literals;
std::string s1 = "abc\0\0def";
std::string s2 = "abc\0\0def"s;
std::cout << "s1: " << s1.size() << " \"" << s1 << "\"\n";
std::cout << "s2: " << s2.size() << " \"" << s2 << "\"\n";
}
Résultat possible :
s1: 3 "abc"
s2: 8 "abc^@^@def"
See also
construit un basic_string Original: constructs a basic_string The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique) | |