如何解决提高type_traits is_array
| 我一直在尝试通过Boost类型特征标头,由于无数#define提供的强烈的不可读取性,现在我感到很恶心。然后再#define。 具体来说,我有兴趣弄清楚以下三个特征:类型T是数组,类还是枚举。 任何人都可以帮忙提出一些破译表面疯狂背后的方法的方法吗?就像您从类型,任何相关的阅读材料等中了解特征的背后的理论一样。解决方法
is_array
非常简单直接:
template<class T>
struct is_array{
static const bool value = false;
};
template<class T,std::size_t N>
struct is_array< T (&)[N] >{
static const bool value = true;
};
只是对引用数组类型的简单部分专业化。
is_class
稍微复杂一点,它依赖于重载解析以及类和结构拥有构造函数(或析构函数)的事实。由于我目前正在使用iPod Touch,因此我无法真正显示示例。我将在再次访问PC后立即对其进行编辑。
is_enum
依赖于我相信的编译器内部函数,因此此处没有示例。
注意:这里的一切都来自内存,我可能会用枚举错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。