Most vexing parse: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Corretto refuso
KSavys (discussione | contributi)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
Riga 1:
Il '''most vexing parse''' è una forma di soluzione di [[grammatica ambigua|ambiguità sintattica]] del [[C++]], definita nella sezione 8.2 dello standard<ref name="C++03 8.2">[[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]] (2003). ''[[C++#Language standard|ISO/IEC 14882:2003(E): Programming Languages - C++]] §8.2 Ambiguity resolution [dcl.ambig.res]''</ref>, determinata dal fatto che la [[sintassi]] per l'inizializzazione di una variabile è in alcuni casi ambigua con quella di dichiarazione di una funzione. La locuzione ''most vexing parse'' è stata introdotta da [[Scott Meyers]] in ''Effective STL'' (2001).<ref name="effectivestl">{{Cita libro|nome= Scott
|cognome= Meyers
|wkautore= Scott Meyers
Riga 83:
</syntaxhighlight>
 
Per [[Disambiguazione|disambiguare]] l'espressione affinché venga interpretata come dichiarazione di variabile, si può usare la stessa tecnica dell'esempio precedente, oppure si può sostituire il cast funzionale con un cast in stile C
 
<syntaxhighlight lang="cpp">
Riga 99:
== Uniform initialization syntax ==
 
Lo standard [[C++11]] ha introdotto la ''uniform initialization syntax'' (sintassi di inizializzazione uniforme), che uniforma la sintassi per l'inizializzazione di oggetti o variabili con quella per gli [[array]] e permette di evitare ogni ambiguità con la dichiarazione di funzioni. La riga problematica del primo esempio può essere riscritta come:
 
<syntaxhighlight lang="cpp">