WEB开发网
开发学院软件开发VC VC10中的C++0x特性 Part 1:Lambdas,auto,以及 ... 阅读

VC10中的C++0x特性 Part 1:Lambdas,auto,以及 static_assert

 2009-06-10 20:07:49 来源:WEB开发网   
核心提示: 4,我要感谢标准委员会开发出这些奇妙而有用并富有艺术的特性,VC10中的C++0x特性 Part 1:Lambdas,auto,以及 static_assert(2),他们也在以下站点上提供了重要的文档:C++0x 语言特性:http://open-std.org/JTC1/SC22/WG

4,我要感谢标准委员会开发出这些奇妙而有用并富有艺术的特性。他们也在以下站点上提供了重要的文档:

C++0x 语言特性:

http://open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2705.html

C++0x 库特性:

http://open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2706.html

C++0x 进行中的草案:

http://open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2798.pdf

5,总是会有bug的(虽然希望不会太多),这也就是发布 CTP 版本的主要目的(让用户测试发现 bug )。请通过 Microfsoft 把这些 bug 报告给我们。

现在,让我们来审视这些特性吧!

lambdas

在 C++ 0x 中,“lambda 表达式”隐式定义并构建不具名函数对象,这些对象就像手写函数对象一样。下面是 lambda “Hello,World”入门级的示例:

C:Temp>type meow.cpp
#include <algorithm>
#include <iostream>
#include <ostream>
#include <vector>
using namespace std;

int main() {
    vector<int> v;

    for (int i = 0; i < 10; ++i) {
        v.push_back(i);
    }

    for_each(v.begin(), v.end(), [](int n) { cout << n << " "; });
    cout << endl;
}
C:Temp>cl /EHsc /nologo /W4 meow.cpp > NUL && meow
0 1 2 3 4 5 6 7 8 9

[] 操作符是 lambda 导引符, 它告诉编译器一个 lambda 表达式开始了。 (int n) 是 lambda 参数声明,它告诉编译器不具名函数对象类的函数调用操作符带有哪些参数, { cout << n << " "; }  是复合声明,它是不具名函数对象类的函数调用操作符的函数体。不具名函数对象类的函数调用操作符默认返回 void。

上一页  1 2 3 4 5 6 7  下一页

Tags:VC 特性 Part

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接