C++primer学习:模板编成(5):模板实参推断{1}
来源:互联网 发布:股市分析软件排名 编辑:程序博客网 时间:2024/05/11 00:51
在向函数模板传递实参的时候,顶层const会被忽略,在其他类型转换中,能用于模板参数转换的有如下两项.
[1]const转换.允许将一个非const对象的引用传递给一个const指针或者引用.
[2]数组或者函数向指针的转换.
注意:如果函数中的参数不是模板参数,那么它的类型转换就与普通函数的转换是一样的
#
template <class T> int compare(const T&, const T&)// compare("hi", "world");// 不正确,推导得出的T分别是] char[3] , char[6]// compare("bye", "dad");// 正确,类型都是char[6];
======================================================================================
函数模板显示实参
有些时候编译器不能够直接通过实参推断函数模板的参数或者编译器推断出来的可能会有冲突,因此需要显式的定义模板参数。
double a = 3,b = 4;compare<int>(a,b)
======================================================================================
尾置类型与类型转换.
当我们需要用户确定返回类型的时候,用显示模板是很有效.但是其他情况会增加不必要的负担.比如在接受一对迭代器并返回序列中一对元素的引用.
template<.typename IT>auto func(IT beg,It end)->decltype(*beg){ return *beg;}
如果需要去掉引用,可以用定义在标准库的remove_reference来获得元素的类型.
[练习]重新定义一个sum,确保可以容纳加法结果
template<typename T>auto sum(const T& lhs, const T&rhs)->decltype(lhs + rhs){ return lhs + rhs;}int main(){ auto s = sum(1234567891239, 123456789123);}
0 0
- C++primer学习:模板编成(5):模板实参推断{1}
- C++primer学习:模板编程(6):模板实参推断和forward的运用与源代码
- C++primer阅读笔记-模板与泛型编程(模板实参推断)
- C++:模板实参推断及引用折叠
- 模板实参推断
- 模板实参推断
- 模板实参推断
- 模板实参推断
- 模板实参推断
- C++模板实参推断
- 模板实参推断
- 《C++ Primer》读书笔记第十六章-1-定义模板、模板实参推断
- 模板实参推断与引用
- C++学习笔记58——模板实参推断
- 模板实参推断与函数指针
- 模板实参推断与函数指针
- 模板与泛型编程之模板实参推断
- 模板实参推断与函数指针的一些事
- Log4j配置
- Maximal Square
- java.lang.NoClassDefFoundError
- <仅是自己做笔记。。。系列-6>判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
- Leetcode || Valid Parentheses
- C++primer学习:模板编成(5):模板实参推断{1}
- 【Android】安卓UI 进度对话框ProgressDialog
- spring创建ProcessEngine抛空指针异常
- 深入理解ANGULAR中的$APPLY()以及$DIGEST()
- Linux命令——useradd
- C#学习之路,学习笔记 第13章 Windows窗体编程 13.4超链接标签(LinkLabel)
- IIS发布的webservice在其他电脑上的浏览器上没有参数输入框
- 信息系统分析与设计第一课
- 素数