Fan*_*c23 5 c++ boost type-traits
我一直试图通过Boost类型特征标题,并且由于无数#define提供了强烈的不可读性,现在感觉很恶心.还有一些#define.
具体来说,我有兴趣弄清楚以下3个特征:如果类型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;
};
Run Code Online (Sandbox Code Playgroud)
只是对数组引用类型的简单部分特化。
is_class有点复杂,依赖于重载解析以及类和结构拥有构造函数(或析构函数)的事实。由于我目前使用的是 iPod Touch,因此我无法真正展示示例。一旦我再次使用电脑,我就会编辑其中一个。
is_enum我相信依赖于编译器内在函数,所以没有例子。
注意:这里的所有内容都来自记忆,我的枚举可能是错误的。
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |