Limiti del compilatore
Nello standard C++ sono consigliati i limiti per vari costrutti di linguaggio. Di seguito sono elencati i casi in cui il compilatore di Visual C++ non implementa i limiti consigliati. Il primo numero rappresenta il limite stabilito nello standard ISO C++ 11 (INCITS/ISO/IEC 14882-2011[2012], allegato B) e il secondo numero rappresenta il limite implementato da Visual C++:
Livelli di annidamento di istruzioni composte, strutture di controllo di iterazione e strutture di controllo di selezione [C++ standard: 256] (compilatore Visual C++: dipende dalla combinazione di istruzioni annidate, ma in generale tra 100 e 110).
Parametri in una definizione macro [C++ standard: 256] (compilatore Visual C++: 127).
Argomenti in una chiamata di macro [C++ standard: 256] (compilatore Visual C++: 127).
Caratteri in un valore letterale stringa di caratteri o in un valore letterale stringa a caratteri "wide" (dopo concatenazione) [C++ standard: 65536] (compilatore Visual C++: 65535 caratteri a un byte, incluso il terminatore null, e 32767 caratteri DBCS, incluso il terminatore null).
Livelli di classe annidata, struttura o definizioni di unione in un singolo struct-declaration-list [C++ standard: 256] (compilatore Visual C++: 16).
Inizializzatori di membro in una definizione del costruttore [C++ standard: 6144] (compilatore Visual C++: almeno 6144).
Le qualificazioni dell'ambito di un identificatore [C++ standard: 256] (compilatore Visual C++: 127).
Specifiche extern annidate [C++ standard: 1024] (compilatore Visual C++: 9 (senza contare la specifica extern interna nell'ambito globale, o 10, se si tiene conto della specifica extern implicita nell'ambito globale).
Argomenti di modello in una dichiarazione di modello [C++ standard: 1024] (compilatore Visual C++: 2046).