型别选择
型别到型别的转换目的是为了在编译期决定调用哪一部分的代码,型别选择则是以在编译期决定使用何种型别为目的。
Select.h
//在泛化版本中,以Then型别作为nested type
template<bool If, class Then, class Else>
struct Select
{
	typedef Then Result;
};
//在特化版本中(false),以Else型别作为nested type
template<class Then, class Else>
struct Select<false, Then, Else>
{
	typedef Else Result;
};
Select.cpp
#include <iostream>
using namespace std;
#include "Select.h"
int main()
{
	Select<true, int, double>::Result i1 = 1.1;
	Select<false, int, double>::Result i2 = 1.1;
	cout << "i1 = " << i1 << "\n" << "i2 = " << i2 << endl;
}
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
