[C++11]函数模板的默认模板参数
生活随笔
收集整理的这篇文章主要介绍了
[C++11]函数模板的默认模板参数
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
在C++11中添加了对函数模板默认参数的支持。
代码如下:
#include<iostream> using namespace std;template<typename T = long ,typename U = int > void myTest(T t = 'A',U u = 'B') {cout << "t = " << t << " u = " << u << endl; }int main() {myTest('a', 'b');//自动推导,根据传递的实参myTest<int>('a', 'b');myTest<char>('a', 'b');myTest<int, char>('a', 'b');myTest<char, int>('a', 'b');myTest();return 0; }测试结果:
默认的函数参数不能用于类型推导。
代码如下:
#include<iostream> using namespace std;template<typename T ,typename U > void myTest(T t = 'A',U u = 'B') {cout << "t = " << t << " u = " << u << endl; }int main() {myTest();//errorreturn 0; }类模板可以有默认的模板参数。
代码如下:
#include <iostream> using namespace std;template<typename T = int ,T t = 520> class Test { public:void print(){cout << "value = " << t << endl;} };int main() {Test<> t;//记得写<>t.print();return 0; }测试结果:
总结
以上是生活随笔为你收集整理的[C++11]函数模板的默认模板参数的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: [C++11]通过using定义基础类型
- 下一篇: [C++11]对模板右尖括号的优化