当前位置: 首页> 科技> 能源 > c++元编程tookit类

c++元编程tookit类

时间:2025/7/27 1:13:10来源:https://blog.csdn.net/qq_38166063/article/details/142302496 浏览次数:0次

前言

下面记录几个,在c++元编程中常用的工具类。

Hollow Types

instance_of

代码

struct instance_of
{typedef T type;instance_of(int = 0){}
};const instance_of<int> I_INT = instance_of<int>(); // 这种写法有点繁琐
const instance_of<double> I_DOUBLE = 0; // 使用这种写法
// also fine.

作用

快速创建一个global对象,立刻初始化。

empty

代码

struct empty
{empty() {}
};
// const empty EMPTY; 这种写法可能会报 unused的警告
const empty EMPTY = 0;

作用

用该类表示空。

Selector

代码

template <bool PARAMETER>
struct selector
{
};
typedef selector<true> true_type1;
typedef selector<false> false_type;

作用

可以作为类型参数来做偏特化选择。

Static Value

代码

template <typename T, T VALUE>
struct static_parameter
{
};
template <typename T, T VALUE>
struct static_value : static_parameter<T, VALUE>
{static const T value = VALUE;operator T () const{return VALUE;}static_value(int = 0){}
};//将static转为非static ,更安全
template <typename T, T VALUE>
inline T static_value_cast(static_value<T, VALUE>) //不需要用到形参,所以可以不用定义形参名
{
return VALUE;
};int main() {auto a  =  static_value_cast(static_value<int, 3>());std::cout <<  a << "\n";
}

作用

快速创建一个static对象

关键字:c++元编程tookit类

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: