2017-03-16 7 views
56

Je suis tombé sur this page où l'auteur parle de la normalisation de l'opérateur "":Quel est l'opérateur "" en C++?

La décision du comité des normes C++ pour normalisent operator "" était [...]

De quoi parle-t-il? Je ne peux pas trouver d'informations à ce sujet, et je ne comprends pas ce que cela pourrait impliquer (surcharge pour les chaînes constantes? Ou quelque chose de plus conceptuel, qui n'affecte pas l'utilisation finale de la langue?)

Répondre

67

user-defined literals. Ils vous permettent de créer des trucs comme std::string, std::chrono::durations ou tout autre type défini par l'utilisateur (vous pouvez faire vos propres littérales) en place:

auto str = "Hello"s; // str is std::string("Hello") 
auto sec = 5s;  // sec is 5 std::chrono::seconds 

Une liste des exploitants littérales fournis par la bibliothèque standard et leur documentation peut être trouvé au bas de la page de documentation, j'ai lié.

3

C'est le user-defined literal operator qui permettra l'introduction de la nouvelle syntaxe littérale basée sur les littéraux existants. Pour plus d'informations, voir le this reference link.

+0

@BaummitAugen Je pense que '36.0_mi' est un littéral défini par l'utilisateur, n'est-ce pas? –

+0

@ PeterA.Schneider: Les exemples de réponses étaient '128u',' 128l', '128.0f' et' 0xBAD'. – user2357112

+0

@ PeterA.Schneider Oui, les exemples dont je parlais ont été supprimés entre-temps. –