2011年12月2日 星期五

C++11

c++ 越來越複雜了, 以後的 c++ 書籍可能會更厚。

c++ 11 有個 Lambda expression。

lambda.cpp
1 // ref: http://kheresy.wordpress.com/2010/05/27/c0x%EF%BC%9Alambda-expression/
2 #include <vector>
3 #include <algorithm>
4 #include <iostream>
5
6 using namespace std;
7
8 int main() {
9
10 vector<int> v;
11
12 for (int i = 0; i < 10; ++i)
13
14 v.push_back(i);
15
16 for_each(v.begin(), v.end(), [](int n) { cout << n << " "; });
17
18 cout << endl;
19
20 }

第 16 行 [](int n) { cout << n << " "; } 就是 lambda express, 很奇怪吧 (template 語法就很怪了, 現在是在比怪的是嗎?)!簡單說就是可以不用寫很多行的 funcion object, 用這個一行就搞定。

g++ 4.5 以後才有支援 lambda express。

g++-4.5 -std=c++0x -o l lambda.cpp

C++11 FAQ中文版: http://chenlq.net/cpp11-faq-chs

C++11 FAQ中文版:編譯器何時將會實現C++11標準呢?

ref:

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。