利用模板实现IfThenElse,选择参数类型

版权声明:本文为博主原创文章,如有需要,可以转载,但请注明出处。 https://blog.csdn.net/xunye_dream/article/details/83050031

在模板开发中,有时需要根据实际选择函数返回值的类型,特别是在类型需要提升的情况下。

下面提供从两个参数类型中选择其中一个类型的模板类,采用了基本模板和局部特化技术实现。其实现如下:

//base template
template<bool C, typename T1, typename T2>
struct IfThenElse;

//local specialization template
template<typename T1, typename T2>
struct IfThenElse<true, T1, T2>
{
	typedef T1 ResultT;
};

//local specialization template
template<typename T1, typename T2>
struct IfThenElse<false, T1, T2>
{
	typedef T2 ResultT;
};

猜你喜欢

转载自blog.csdn.net/xunye_dream/article/details/83050031