Questions marquées «c++17»

543
Règles d'invalidation de l'itérateur

Quelles sont les règles d'invalidation de l'itérateur pour les conteneurs C ++? De préférence dans un format de liste récapitulative. (Remarque: Ceci est censé être une entrée de la FAQ C ++ de Stack Overflow . Si vous voulez critiquer l'idée de fournir une FAQ sous cette forme, alors la...

242
Quel est le but de std :: launder?

P0137 introduit le modèle de fonction std::launderet apporte de nombreuses modifications à la norme dans les sections concernant les unions, la durée de vie et les pointeurs. Quel est le problème que ce document résout? Quels sont les changements de langue dont je dois être conscient? Et...

186
Qu'est-ce qui a fait i = i ++ + 1; légal en C ++ 17?

Avant de commencer à crier un comportement indéfini, cela est explicitement répertorié dans N4659 (C ++ 17) i = i++ + 1; // the value of i is incremented Pourtant dans N3337 (C ++ 11) i = i++ + 1; // the behavior is undefined Qu'est ce qui a changé? D'après ce que je peux comprendre , à partir de...

162
Qu'est-ce que string_view?

string_viewétait une fonctionnalité proposée dans le C ++ Library Fundamentals TS ( N3921 ) ajouté à C ++ 17 Autant que je sache, c'est un type qui représente une sorte de "concept" de chaîne qui est une vue de tout type de conteneur qui pourrait stocker quelque chose de visualisable sous forme de...

125
Lambda se retourne: est-ce légal?

Considérez ce programme assez inutile: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } Fondamentalement, nous essayons...

124
Comment fonctionnent les variables en ligne?

Lors de la réunion Oulu ISO C ++ Standards 2016, une proposition appelée Variables en ligne a été votée en C ++ 17 par le comité des normes. En termes simples, que sont les variables en ligne, comment fonctionnent-elles et à quoi servent-elles? Comment les variables en ligne doivent-elles être...

96
Pourquoi utiliser std :: make_unique en C ++ 17?

Pour autant que je sache, C ++ 14 a été introduit std::make_uniquecar, en raison de la non-spécification de l'ordre d'évaluation des paramètres, ce n'était pas sûr: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Explication: si l'évaluation alloue d'abord la mémoire pour...

89
Comment fonctionne l'élision de la copie garantie?

Lors de la réunion des normes Oulu ISO C ++ 2016, une proposition intitulée Élision de la copie garantie grâce à des catégories de valeurs simplifiées a été votée en C ++ 17 par le comité des normes. Comment fonctionne exactement l'élision de la copie garantie? Couvre-t-il certains cas où...