a.崭新的Template特性
// demo3.5.1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; void show() { } template <typename T,typename... Types> void show(const T& firstArg,const Types&... args) { cout << firstArg << endl; show(args...); } int _tmain(int argc, _TCHAR* argv[]) { show(2,4,2,"guojun"); system("pause"); return 0; }
b.Lambda
// demo3.6.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { []{cout << "hello,world!" << endl; }; //什么也不做 []{cout << "hello,world!" << endl; }(); //加入(),调用 // auto l = []{cout << "hello,world!" << endl; }(); //vs2013不能用auto推导void auto l = []{cout << "hello,world!" << endl; return 0; }; l(); auto j = [](const string& s){cout << s << endl; return 0; }; //可以有参数 j("hehe"); auto k = []()->double{return ‘a‘; }; //指定返回类型 cout << k() << endl; int x = 0; int y = 42; auto qqq = [x, &y] { cout << "x:" << x << endl; cout << "y:" << y << endl; y++; }; x = y = 77; qqq(); qqq(); cout << "final y:" << y << endl; int id = 0; auto f = [id]()mutable { cout << "id:" << id << endl; ++id; //改变的是临时变量,副本 }; id = 42; f(); f(); f(); cout << id << endl; system("pause"); return 0; }
时间: 2024-11-09 02:49:48