Ich war kürzlich überrascht zu erfahren, dass die C und C++ Sprachstandards eine "strenge Aliasing" Regel haben. Im Wesentlichen verbietet die Regel, dass Variablen unterschiedlichen Typs auf denselben Speicherort verweisen.Unterstützt Visual C++ "striktes Aliasing"?
Als Beispiel:
char buffer[4] = { 0x55, 0x66, 0x77, 0x88 };
int32 *p = (int32*)&buffer[0]; // illegal because buffer[0] and *p are different types
Die meisten professionellen C++ Entwickler ich die Interaktion mit nicht vertraut sind mit dieser Regel. Basierend auf meiner Forschung scheint es hauptsächlich GCC/G ++/CLANG Benutzer zu beeinflussen. Unterstützt Visual C++ das Aktivieren/Deaktivieren dieser Regel? Wenn ja, wie geht das?
Danke
AFAIK MSVC verhält sich immer so, als ob Sie No-Strict-Aliasing setzen –
Es ist ein Compiler mit einem 1-800 Support-Telefon Nummer. Also nein. –
lol @ mit einer 1-800 Unterstützung Nummer :) – digitale