美文网首页
深入理解C++11 2.11 模板函数的默认模板参数

深入理解C++11 2.11 模板函数的默认模板参数

作者: zinclee123 | 来源:发表于2019-08-08 19:07 被阅读0次

C++98中,类模板支持默认模板参数,但是函数模板并不支持,C++11则支持了函数模板的默认参数。如:

template<typename T = int>
class DefClass {};          //C++98编译通过,C++11编译通过

template<typename T = int>
void DefTempParm() {}      //C++98编译失败,C++11编译通过

并且,类模板的默认参数必须从右往走定义,而函数模板则不做限制。如:

template<typename T1 = int, typename T2 = double, typename T3 = float> //编译通过
class DefClass1 {};

template<typename T1, typename T2 = double, typename T3 = float>      //编译通过
class DefClass2 {};

template<typename T1 = int, typename T2, typename T3 = float>         //编译失败
class DefClass3 {};

template<typename T1 = int, typename T2, typename T3 = float>         //编译通过
void DefMethod(){}

相关文章

  • 深入理解C++11 2.11 模板函数的默认模板参数

    C++98中,类模板支持默认模板参数,但是函数模板并不支持,C++11则支持了函数模板的默认参数。如: 并且,类模...

  • c++11新特性之模板的改进

    C++11关于模板有一些细节的改进: 模板的右尖括号 模板的别名 函数模板的默认模板参数 模板的右尖括号 C++1...

  • c++11: 可变参数模板

    c++11 可变参数模板,模板函数可以表示0到任意个数、任意类型的参数。但是,要提取模板中的参数,则需要不断的展开...

  • 【C++ Templates(3)】非类型模板参数

    非类型的类模板参数 使用该模板需要同时指定类型和个数 非类型模板参数也可以指定默认值 非类型的函数模板参数 这类模...

  • 03 非类型模板参数

    非类型的类模板参数 使用该模板需要同时指定类型和个数 非类型模板参数也可以指定默认值 非类型的函数模板参数 这类模...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • C++11 模板元编程 - 目录

    前言 模板的基础知识模板的类型参数模板的默认参数模板的模板参数模板的特化模板的非类型参数模板的编译期计算数值计算类...

  • C++ 11 实现类似boost库和Scala的optional

    实现原理,代码示例是照着《深入应用C++11》抄的。 使用变长模板参数构造任意对象。 使用std::aligned...

  • C++模板编程/泛型编程

    模板分类 模板分为函数模板与类模板两类。 函数模板 模板声明 模板定义 例如 函数模板实参类型不一致问题 参数推导...

  • C++11 模板元编程 - 模板的默认参数

    上面例子中,栈的实现使用了std::vector。为了让栈的实现更加灵活,我们将实现栈的容器也作为模板的参数之一。...

网友评论

      本文标题:深入理解C++11 2.11 模板函数的默认模板参数

      本文链接:https://www.haomeiwen.com/subject/tqsfjctx.html