相关疑难解决方法(0)

"has_trivial_destructor"定义而不是"is_trivially_destructible"

在C++ 11标准的细化过程中,似乎is_trivially_destructible被认为是比has_trivial_destructor更好/更一致的名称.

这是一个相对较新的开发,因为我的g ++ 4.7.1仍然使用旧名称,并且已修复为符合4.8的标准:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52702

我一直懒得使用一个#if有利于我所使用的编译器:

#if TRIVIAL_DESTRUCTOR_TYPE_TRAIT_MATCHES_STANDARD
template<class T>
using is_trivially_destructible = std::is_trivially_destructible<T>;
#else
template<class T>
using is_trivially_destructible = std::has_trivial_destructor<T>;
#endif
Run Code Online (Sandbox Code Playgroud)

...但现在我正在尝试与4.8用户和其他编译器共享标准的源代码.是否有更好的技巧可以使情况检测更"自动"而不需要#define?

c++ g++ conditional-compilation type-traits c++11

6
推荐指数
1
解决办法
2929
查看次数

标签 统计

c++ ×1

c++11 ×1

conditional-compilation ×1

g++ ×1

type-traits ×1