Riepilogo delle ultime modifiche in fase di compilazione

Aggiornamento: novembre 2007

In questo argomento vengono riepilogati gli errori e gli avvisi della fase di compilazione che ora saranno pubblicati sul codice compilato senza errori o avvisi prima di Visual C++ 2003. Tuttavia, alcune ultime modifiche della fase di compilazione relative alla conformità sono state introdotte in Visual C++ 2005.

  • Le parentesi di chiusura adesso sono necessarie per la direttiva definita dal processore (C2004).

  • La parola chiave typename mancante e le specializzazioni esplicite non trovano più parametri di modello dal modello primario (C2146 ).

  • Un membro protetto (n) è accessibile esclusivamente mediante una funzione membro di una classe (B) che eredita dalla classe (A) della quale (n) è un membro (C2247).

  • Controlli di accessibilità migliorati nel compilatore ora rilevano classi base inaccessibili (C2247).

  • Una specializzazione esplicita non può essere un costruttore di copia o un operatore di assegnazione di copia (C2299).

  • È impossibile rilevare un'eccezione se il distruttore e/o costruttore di copia è inaccessibile (C2316).

  • Gli argomenti predefiniti sui puntatori a funzioni non sono più consentiti (C2383).

  • Impossibile inizializzare il membro di dati statici tramite classi derivate (C2477).

  • L'inizializzazione di un typedef non è consentita dallo standard e attualmente genera un errore del compilatore (C2513).

  • bool adesso è un tipo corretto (C2632).

  • Un UDC ora può creare l'ambiguità con gli operatori di overload (C2666).

  • Una conversione di qualificazione è diversa dalla conversione di identità (C2666).

  • Altre espressioni ora sono considerate costanti del puntatore null valide (C2668).

  • template<> ora è richiesto nei posti in cui il compilatore precedentemente lo deduceva (C2768).

  • La specializzazione esplicita di una funzione membro fuori della classe non è valida se la funzione è già stata specializzata in modo esplicito mediante una specializzazione della classe modello. (C2910).

  • Per ogni specializzazione esplicita, è necessario scegliere i parametri per ogni specializzazione esplicita, in modo che, corrispondano ai parametri del modello primario (C2912).

  • Parametri di modello non del tipo a virgola mobile non sono più consentiti (C2993).

  • I modelli di classe non sono consentiti come argomento di tipo di modello (C3206).

  • I nomi di funzione friend non vengono più introdotti nello spazio dei nomi (C3767).

  • Conformità puntatore-a-membro migliorata (C3867).

  • Il compilatore non accetta più virgole aggiuntive in una macro (C4002).

  • Un oggetto di tipo POD costruito con un inizializzatore con formato () verrà inizializzato per impostazione predefinita (C4345).

  • typename adesso è necessario se un nome dipendente deve essere trattato come un tipo (C4346).

  • Le funzioni che venivano considerate erroneamente specializzazioni del modello non sono più considerate tali (C4347).

  • Impossibile inizializzare i membri di dati statici mediante una classe derivata (C4356).

  • È necessario definire una specializzazione di modello di classe prima di essere utilizzata in un tipo restituito (C4686).

  • Il compilatore ora segnala un codice irraggiungibile (C4702).

  • È necessario definire una dichiarazione friend che dichiara una nuova funzione non modello (LNK2019).

Vedere anche

Riferimenti

Ultime modifiche al compilatore Visual C++