Ich versuche, den folgenden Quellcode mit Visual Studio 2012 Professional zu kompilieren, und ich bekomme die Kompilierungsfehler. Aber der gleiche Code funktioniert in Visual Studio 2013. Wenn ich Vs 2012 überprüfe, unterstützt es die meisten C++ 11-Funktionen. Das Programm wird mit C++ 11-kompatiblem Compiler erstellt. Ich fand dieses Programm http://lucid-motif.blogspot.com/2013/11/coding-puzzle-knight-sequences.html?Visual Studio C++ 11g Kompilierungsfehler - zu viele Initialisierer
typedef enum { _A,_B,_C,_D,_E,_F,_G,_H,_I,_J,_K,_L,_M,_N,_O,_1,_2,_3 } TKeyIdentity;
typedef std::vector<TKeyIdentity const> TKeyPath
typedef std::vector<TKeyPath const> TKeyMap;
const TKeyMap keyPad =
{
{ _H, _L }, // A
{ _I, _K, _M }, // B
{ _F, _J, _L, _N }, // C
{ _G, _M, _O }, // D
{ _H, _N }, // E
{ _C, _M, _1 }, // F (_1) not valid for 2 moves followed by 1 move rule
{ _D, _N, _2 }, // G
{ _A, _E, _K, _O, _1, _3 }, // H
{ _B, _L, _2 }, // I
{ _C, _M, _3 }, // J (_3) not valid for 2 moves followed by 1 move rule
{ _B, _H, _2 }, // K
{ _A, _C, _I, _3 }, // L
{ _B, _D, _F, _J }, // M
{ _C, _E, _G, _1 }, // N
{ _D, _H, _2 }, // O (oh)
{ _F, _H, _N }, // 1
{ _G, _I, _K, _O }, // 2 (_K) & (_O) not valid for 2 moves followed be 1 move rule
{ _H, _J, _L } // 3
};
const TKeyPath keyPadRoot =
{
_A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _1, _2, _3
}
Tastatur und keyPadRoot Initialisierer geben den unten Fehler
Fehler 3 Fehler C1903: Kann nicht von früheren Fehler (s) zurückzugewinnen; Stoppen Kompilation Fehler 2 Fehler C2078: zu viele Initialisierer
Fehler 1 C2552 Fehler: ‚Taste‘: Nicht-Aggregate nicht mit Initialisiererliste initialisiert werden kann
Vielen Dank für Ihre Hilfe.
Wenn Sie die Standardkonformität von MSVS wollen, dann ist 2015 Update 3 das Beste, was Sie jetzt bekommen können. – NathanOliver
Sie scheinen ziemlich überzeugend gezeigt zu haben, dass VS 2012 die C++ 11-Funktion (en), die Sie verwenden möchten, nicht unterstützt. –
[Feature-Support-Matrix hier] (https://msdn.microsoft.com/en-us/library/hh567368.aspx). Initialisierungslisten werden beginnend mit VS2013 unterstützt. –