小编rob*_*05c的帖子

GCC#pragma消息被忽略

我想显示在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 c++ gcc pragma

10
推荐指数
1
解决办法
1万
查看次数

如何确定C++对象是否为time_t

如何确定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_tlong,因此myFunction(42L)调用time_t特化.我怎么能阻止这个?

我尝试了专门化long,这导致编译错误(正文已定义).我也试过rtti,typeid(time_t).name()回归"long".

我如何区分time_t它被定义为的整数类型,和/或模板专门化time_t使得它的整数类型不会传递给专门化?

使用模板的方法更可取,但我会接受任何解决方案,运行时或编译时.

c++ templates typedef rtti template-specialization

3
推荐指数
1
解决办法
261
查看次数

标签 统计

c++ ×2

c ×1

gcc ×1

pragma ×1

rtti ×1

template-specialization ×1

templates ×1

typedef ×1