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