Avviso del compilatore (livello 1) C4067
token imprevisti dopo la direttiva del preprocessore : previsto un nuovo codice
Osservazioni:
Il compilatore ha trovato e ignorato caratteri aggiuntivi dopo una direttiva del preprocessore. Ciò può essere causato da qualsiasi carattere imprevisto, anche se una causa comune è un punto e virgola randagio dopo la direttiva. I commenti non causano questo avviso. L'opzione del compilatore /Za abilita questo avviso per più direttive del preprocessore rispetto all'impostazione predefinita.
Esempio
// C4067a.cpp
// compile with: cl /EHsc /DX /W1 /Za C4067a.cpp
#include <iostream>
#include <string> s // C4067
#if defined(X); // C4067
std::string s{"X is defined"};
#else
std::string s{"X is not defined"};
#endif; // C4067 only under /Za
int main()
{
std::cout << s << std::endl;
}
Per risolvere questo avviso, eliminare i caratteri strani o spostarli in un blocco di commento. Alcuni avvisi C4067 possono essere disabilitati rimuovendo l'opzione del compilatore /Za .
// C4067b.cpp
// compile with: cl /EHsc /DX /W1 C4067b.cpp
#include <iostream>
#include <string>
#if defined(X)
std::string s{"X is defined"};
#else
std::string s{"X is not defined"};
#endif
int main()
{
std::cout << s << std::endl;
}