针对类型信息的特化

    技术2022-05-11  87

    类模板显式特化和局部特化通常用于生成主类模板的一些版本,这些版本根据具体的模板模板实参或模板实参的类定制而成。

    然而,这些语言特性常常也被以相反的样式使用,即,不是基于类型的属性生成特化版本,而是从一个特化版本中推导出类型的属性。

    例:

    template<class T>struct IsInt  //T 不是一个 int{ enum { result = false };};

    template<>struct IsInt<int> //除非T 是一个int{ enum {result = true};};

    template<typename X>void Test(const X &arg){ if (IsInt<X>::result)     std::cout<<arg<<"is integer/n"; else  std::cout<<arg<<"is not integer"<<"/n";}

    int _tmain(int argc, _TCHAR* argv[]){

     int a = 10; Test<int>(a); system("pause"); return 0;}


    最新回复(0)