版权声明:本文为博主原创文章,如有需要,可以转载,但请注明出处。 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;
};