Maison > Article > développement back-end > Quelle est l'analyse la plus fastidieuse et pourquoi cela se produit-il en C 11 ?
Comprendre les initialiseurs uniformes et l'analyse la plus délicate
En C 11, les initialiseurs uniformes fournissent une syntaxe concise pour initialiser des objets et des structures de données. Cependant, leur utilisation peut conduire à une ambiguïté potentielle, connue sous le nom de « l'analyse la plus vexante ».
L'analyse la plus vexante
Considérez l'extrait de code suivant :
<code class="cpp">#include<iostream> class Timer { public: Timer() {} }; int main() { auto dv = Timer(); // What is Timer() ? And what type is dv? int time_keeper(Timer()); // This is a function right? And why isn't the argument " Timer (*) ()"? return 0; }</code>
Analyse :
dv = Timer();
int time_keeper(Timer());
Conclusion :
Dans le scénario « d'analyse la plus frustrante », le compilateur tente de déduire le type et l'interprétation d'un expression basée sur le contexte et les règles. En comprenant comment ces règles s'appliquent, les programmeurs peuvent éviter toute ambiguïté et écrire du code avec une intention claire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!