I'm trying to refactor an old C++ code. At some point I've something like:
#if defined(WIN32) && !(defined(__CYGWIN__) || defined(__MINGW32__))
# define I64_CONST(X) X ## i64
#else
# define I64_CONST(X) X ## LL
#endif
So for defining a 64-bit literal in the code there's something like:
(uint32_t)((data_in >> 32) & I64_CONST(0x00000000ffffffff));
This is for using i64
suffix with Microsoft compilers and LL
with other ones. Since I'm adapting it for C++17 and the minimum requirement that we have is to use Visual Studio 2019, is it possible to remove this and use LL
everywhere, or is there some issue and it's better to maintain the distinction between compilers?