#include <iostream>
using namespace std;
int main()
{
cout << "Hello C++11 New Feature!!!" << endl;
// 1、新的遍歷方式
int arr[] = {11, 22, 33, 44, 55};
for (auto it : arr)
{
cout << it << endl;
}
// 2、lambda表示式
auto sayHello = []() {
cout << "新的函數指針方式" << endl;
}; // ;分號必須有
sayHello();
// labmda傳入參數
auto labmdaTest1 = [](int a, int b) {
return a + b;
}; // ;分號必須有
cout << labmdaTest1(4, 5) << endl;
// labmda按值引用外部變量,不能引用數組類型
int num = 88;
printf("num:%x\n", &num);
auto labmdaTest2 = [=]() {
printf("num:%x\n", &num);
}; // ;分號必須有
labmdaTest2();
// labmda按引用引用外部變量
char str[] = "kk world";
printf("num:%x, str:%x\n", &num, str);
auto labmdaTest3 = [&]() {
printf("num:%x, str:%x\n", &num, str);
}; // ;分號必須有
labmdaTest3();
/*
[=]通過值捕捉所有變量
[&]通過引用捕捉所有變量
[value]通過值捕捉value,不捕捉其它變量
[&value]通過引用捕捉value,不捕捉其它變量
[=, &value]默認通過值捕捉,變量value例外,通過引用捕捉
[&, value]默認通過引用捕捉,變量value例外,通過值捕捉
*/
}
c++11新特性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.