E 'mia convinzione che questo codice:Errore mio o bug nel compilatore intel? sizeof un errore di membro non statico
#include <stdio.h>
struct foo {
char array[1024];
};
int main() {
fprintf(stderr, "sizeof(foo::array): %zd\n", sizeof(foo::array));
}
è valido C++. g ++ lo compila bene con -ansi -pedantic. Tuttavia, la compilazione con ICC di Intel 12.1.3 ottengo:
error #288: a nonstatic member reference must be relative to a specific object
E 'un mio errore o è ICC facendo la cosa sbagliata re: le specifiche C++?
Questo è [N2253] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers /2007/n2253.html), parte di C++ 11. –
clang ++ pensa che sia anche un errore: ': 8: 62: errore: uso non valido di membro di dati non statici 'array' fprintf (stderr," sizeof (foo :: array):% zd \ n ", sizeof (foo :: array)); ~~~~~^~~~~ ' –
GCC è ora impostato su C++ 11, forse questo è il problema? Probabilmente dovrai dire ad altri compilatori di usare C++ 11, possibilmente con '-std = C++ 11'. –