我想知道std::is_class
(http://www.cplusplus.com/reference/type_traits/is_class/)是如何实际实现的。我查看了 / usr / include / c ++ / 4.8 / tr1 / type_traits ,但似乎唯一存在的是:
/// is_class
template<typename _Tp>
struct is_class
: public integral_constant<bool, __is_class(_Tp)>
{ };
并且__is_class
的定义在任何地方都找不到(或者我看起来不够深)。无论如何,如果有人能指出我在哪里寻找这个(以及is_***
命名空间中的其他std
)我会很高兴
答案 0 :(得分:3)
__is_class
是gcc编译器提供的C ++扩展。请参阅gcc type traits。
C ++前端实现了语法扩展,允许编译时确定类型(或一对类型)的各种特征。