是否有跨平台的方法来确定是否与预处理ptrdiff_t
相同long
或long long
在预处理期间?
我知道__PTRDIFF_TYPE__
应该用 gcc/g++ 给出类型,但它似乎没有在 Windows 的 VC/VC++ 中定义。有比以下更好的方法吗?
#ifndef __PTRDIFF_TYPE__
# if _WIN64
# define __PTRDIFF_TYPE__ long long
# else
# define __PTRDIFF_TYPE__ long
# endif
#endif
如果在预处理期间不可能,是否有编译时方法?我正在寻找一个非 C++11 的解决方案,但如果你有一个非常好的现代解决方案,请随时分享!