#if的用法
想写段代码,在time_t为四个字节时做一个操作,在为8个字节时做另一个操作
代码如下,编译不过
提示fatal error C1017: 无效的整数常量表达式
inline time64_t chg_time_t(time_t *now){#if (sizeof (time_t) == 4) return *now;#else //将now转成64位#endif}
struct size4 { };struct sizenot4 { };template <int s>struct Size{ typedef sizenot4 size_type;};template <>struct Size<4>{ typedef size4 size_type;};time64_t do_chg_time_t(time_t *now, size4){ return *now;}time64_t do_chg_time_t(time_t *now, sizenot4){ // do something or ... return time64_t();}time64_t chg_time_t(time_t *now){ return do_chg_time_t(now, Size<sizeof(time_t)>::size_type());}