J'essaie de remanier un vieux code C++. A un moment donné, j'ai quelque chose comme :
#if defined(WIN32) && !(defined(__CYGWIN__) || defined(__MINGW32__))
# define I64_CONST(X) X ## i64
#else
# define I64_CONST(X) X ## LL
#endif
Donc pour définir un littéral 64 bits dans le code, il y a quelque chose comme :
(uint32_t)((data_in >> 32) & I64_CONST(0x00000000ffffffff));
Il s'agit d'utiliser i64
avec les compilateurs Microsoft et LL
avec d'autres. Comme je l'adapte pour C++17 et que l'exigence minimale que nous avons est d'utiliser Visual Studio 2019, est-il possible de supprimer cela et d'utiliser LL
partout, ou y a-t-il un problème et il est préférable de maintenir la distinction entre les compilateurs ?