Si j'ai bien lu la doc MS, les différences entre du code 32 bits et 64 bits sont uniquement size_t et ptrdiff_t qui deviennent 64 bis (outre tous les pointeurs bien sûr). Le reste ne change pas, à savoir les "int" et "unsigned int" ainsi que "long" et "unsigned long" reste en 32 bits.

Qu'en est-il des valeurs "implicites", comme les sizeof() ou les enum ?
Par exemple si je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
int i;
i=sizeof(T);//sizeof() -> 64 bits ?
Ne devrait-il pas y avoir un warning ?

Autre question.
Est-ce vrai pour tous les compilateurs 64 bits ? Ou pourrait-il y avoir des problèmes de compatibilité ? (à priori je ne ferais jamais de code portable autre que pour Linux, Mac et Windows, du intel quoi).

Merci

EDIT, j'oubliais un détail important: peut-on allouer des blocks mémoire de plus de 32 bits (>4Gb), avec par exemple
char *ptr=new char[65536*65536*65536]; ?