- 博客(8)
- 问答 (6)
- 收藏
- 关注
原创 Day 8: 重载与模板
1. 重载模板语法形式如下所示template <typename T>string debug_rep(const T &t){ostringstream ret;ret<<t;return ret.str();}当存在多个模板实例化结果时,编译器选择最准确的和最特例化的版本(如非模板函数)2. 可变参数模板参数个数不止一个template<ty...
2018-05-17 23:16:18
141
原创 Day 7: 转发
为将一个或多个完整的实参传递给其他函数,需要继续转换。1. template<typename f,typename T1,typename T2>void flip1(F f,T1 t1,T2 t2){f(t2,t1);}void f(int v1,int &v2){cout<<v1<<" "<<++v2<<endl;..
2018-05-16 06:02:38
145
原创 Day 6: std::move 理解
move获得一个绑定到左值上的右值引用1. 如何定义template<typename T>typename remove_reference<T>::type&& move(T&& t){return static_cast<typename remove_reference<T>::type&&&g
2018-05-15 06:25:46
196
原创 Day 5: 函数指针和实参推断
1.(1) 用函数模板初始化函数指针template<typename T>int compare(const T&,const T&);int (*pf)(int)(const int&,const int&)=compare;//pf指向实例(2)函数模板使函数重载void func((int*)(const int&,const in...
2018-05-14 15:30:45
182
原创 Day 4: 尾置返回类型与类型转换
1.尾置返回类型template <typename T>auto fcn(T beg,T end)->decltype(*beg)//尾置返回的作用为--使输出值为函数参数之一,但实际编译过程中用处并不大,decltype语句完全可以省略,而程序不报错{return *beg;}2.进行类型转换的标准库模板类(强制类型转换)template<typename T&...
2018-05-14 10:45:36
242
原创 模板实参推断
一、类型转换与模板类型参数可应用于函数模板的类型转换1. 非const的引用(或指针)传递给const的引用(或指针)int i;const int &j=i;const int *p=&i;int &r=j,*q=p;//错误,存在修改const的可能2. 数组、函数指针转换int a[10];int *r=a;//将a自动换成指向数组首元素的指针bool le...
2018-05-12 23:00:43
219
原创 Day3: 函数模板显式实参
1. 若定义模板时,由用户控制函数返回类型,T1 compare(T2,T3);T1不存在于参数表中,系统无法从用户输入的参数中判断出返回值类型,则需要用户在使用时提前指定一个类型template <typename T1,typename T2, typename T3>T1 sum(T2,T3);//指定形式如下:auto value=sum<long long>(i...
2018-05-12 22:57:18
231
原创 C++控制实例化
显式实例化使模板实例化时,文件中形成的实例各不相同,避免了大系统中一个文件一个实例的额外开销形式如下:extern template declaration;(declaration 为类或函数声明)extern template class Blob<string>;extern template compare(const int&,const int&);则在...
2018-05-07 16:10:06
634
1
空空如也
win10 ubuntu16.04双系统,突然进不去ubuntu,求救!!!
2020-10-14
typedef 函数,对这块不是很熟悉,求指点!!!
2020-06-30
Hyper-V 安装Ubuntu系统出问题,求救!!
2018-11-07
spss安装,文本值在当前服务器语言环境不可映射
2018-07-05
输入流相关,读取相关文件错误
2018-05-21
一个关于友元函数的问题
2018-03-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人