我想显示在GCC编译时消息,通过
#pragma message "hello world"
Run Code Online (Sandbox Code Playgroud)
但是当我用-Wall它编译时会发出警告
warning: ignoring #pragma message
Run Code Online (Sandbox Code Playgroud)
我在Mac OS X 10.6.8(Snow Leopard)上使用GCC 4.2.1.
为什么不显示消息?如何让它显示消息?
如何确定C++对象是否是time_t,而不是整数类型time_t被定义为?
我特意想模板专门化一个函数,
template <typename T> void myFunction( T val );
template<> void myFunction<time_t>( time_t val );
Run Code Online (Sandbox Code Playgroud)
这样当定义了time_t的整数类型被传递时,会调用unspecialized函数.
我的STL实现定义time_t为long,因此myFunction(42L)调用time_t特化.我怎么能阻止这个?
我尝试了专门化long,这导致编译错误(正文已定义).我也试过rtti,typeid(time_t).name()回归"long".
我如何区分time_t它被定义为的整数类型,和/或模板专门化time_t使得它的整数类型不会传递给专门化?
使用模板的方法更可取,但我会接受任何解决方案,运行时或编译时.