随笔分类 -  C++11新特性

摘要:auto类型常规推断 C++11中,auto用于自动类型推断,在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型,不需要程序员显示指定类型; auto自动类型推断发生在编译器期间,所以不会影响程序执行期间的性能; auto定义变量必须立即初始化;这样编译器才能推断它的实际类型;编译的时候 阅读全文
posted @ 2020-08-08 12:07 NaughtyCoder 阅读(957) 评论(0) 推荐(1)
摘要:decltype 用于推导类型,对于一个给定的变量或者表达式,使用decltype可以得到其类型; decltype的自动类型推断会发生在编译阶段和auto一样 decltype不会直接计算表达式的值 变量 #include <iostream> #include <string> #include 阅读全文
posted @ 2020-08-06 11:01 NaughtyCoder 阅读(1034) 评论(0) 推荐(1)
摘要:引用折叠规则 引用折叠 C++11新标准 C++中有明确含义的引用只有两种,一种是&左值引用类型,一种是带&&右值引用类型; 折叠规则:如果任意一个引用为左值引用,那么结果就为左值引用,否则就是右值引用 一共下面四种情况 & & & && && & && && #include <iostream> 阅读全文
posted @ 2020-08-06 10:59 NaughtyCoder 阅读(612) 评论(0) 推荐(1)
摘要:查看类型推断结果 需要清楚编译器推断出来的模板参数以及普通参数类型是什么; 通过查看编译器类型推断的结果;掌握C++类型推断的规则; 借助boost库:利用boost库来把编译器推断的类型信息打印出来;官网:www.boost.org 模板类型推断 #include <iostream> #incl 阅读全文
posted @ 2020-08-06 10:57 NaughtyCoder 阅读(461) 评论(0) 推荐(0)
摘要:类型区别基本概念 #include <iostream> using namespace std; template <typename T> void func(const T &val){} //T是什么类型; //val是什么类型; int main() { func(10); //T是什么类 阅读全文
posted @ 2020-08-06 10:56 NaughtyCoder 阅读(458) 评论(0) 推荐(0)
摘要:总述 ()圆括号是函数调用的明显标记,()也叫函数调用运算符; 如果在类中重载了函数调用运算符,就可以想使用函数一样使用该类的对象了; 只要对象所属的类重载了()函数调用运算符,那么这个类对象就变成了可调用的;而且可以调用多个版本的(),只要在参数类型或者数量上有差别即可; 重载了()的类实例化的对 阅读全文
posted @ 2020-08-06 10:55 NaughtyCoder 阅读(308) 评论(0) 推荐(0)
摘要:用法简介 一种可调用对象,定义了一个匿名函数,并且可以捕获一定范围内的变量; auto f = [](int a)->int{return a + 1}; cout << f(1) << endl; 特点 匿名函数,也可以理解为可调用的代码单元;或者理解成未命名的内联函数; 有一个返回类型,一个参数 阅读全文
posted @ 2020-08-04 20:22 NaughtyCoder 阅读(203) 评论(0) 推荐(0)
摘要:可调用对象 函数指针 void myfunc(int tv) { cout << tv << endl; } int main() { void (*func)(int) = myfunc; //定义函数指针并赋值; func(10); //调用函数,可调用对象; } 仿函数 具有operator( 阅读全文
posted @ 2020-08-04 20:21 NaughtyCoder 阅读(276) 评论(0) 推荐(0)