一个列子演示vs2010 c++新特性

Posted 天师符

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个列子演示vs2010 c++新特性相关的知识,希望对你有一定的参考价值。

近日托安装雪豹的“福”,格了XP装了win7,前段时间看了C++0X标准以及VS2010诱人的新特性,不禁心痒痒在线安装了VS2010,然后手写了这个列子用来测试新增的特性。
struct _SUT {     int _a;     char _c; };
int _tmain(int argc, _TCHAR* argv[]) {     //auto关键字     auto i = 0.0f;     cout << typeid(i).name() << " i = " << i <<endl;     //静态编译断言     static_assert(sizeof(i) == 4, "sizeof(i) != 4");
    vector<int> v;     for (int i = 0; i < 10; i++)         v.push_back(i);
    //decltype关键字 & 空指针常量     decltype(i) b = 1;     decltype(b) *p = nullptr;     p = &b;
    //lambda表达式     for_each(v.begin(), v.end(), [&i, p](int n)     {         i += n;       www.90168.org  (*p)++;     });     cout << "i=" << i << "\t" << "b=" << b << endl;          //右值引用     _SUT lVal = { 1, ‘c‘};     _SUT &&rVal = move(lVal);     cout << "rVal._a = " << rVal._a << endl;
    return 0; }
PS:VS2010好用看得见,可惜只支持C++0X中的若干条新增特性,这就是现实(编译器厂商因为某种理由拒绝标准)与理想(语言标准)的差距啊。

Feedback

# re: 一个列子演示vs2010 c++新特性  回复更多评论   

2010-06-10 16:43 by 空明流转
不是厂商拒绝标准,而是标准还没完成,所以VS只需要引入一部分就OK了,和当年的VC6的情况是一样的。

# re: 一个列子演示vs2010 c++新特性  回复 更多评论   

2010-06-10 16:44 by 空明流转
还有,貌似你那个Move根本什么都没用到。#re: 一个列子演示vs2010 c++新特性  回复 更多评论  
2010-06-13 16:07 by 乱78糟
@空明流转 怎么说呢,标准的制定者指定标准时既要考虑兼容性又要考虑编译器的实现复杂性,而厂商可能因为编译器的兼容或实现复杂度而拒绝支持某些标准,所以说是现实和理想的差距。
那个move的确没清晰的展示右值引用的特性,改成这样更为直观一些: _STU&& fun() { _SUT lVal = { 1, ‘c‘}; cout << "lVal._a = " www.90168.org<< lVal._a <<endl; return move(lVal); }
int main() { ... _SUT &&rVal = fun(); cout << "rVal._a = " << rVal._a << endl; }

以上是关于一个列子演示vs2010 c++新特性的主要内容,如果未能解决你的问题,请参考以下文章

23.Flink-高级特性-新特性-Streaming Flie Sink介绍代码演示Flink-高级特性-新特性-FlinkSQL整合Hive添加依赖和jar包和配置

23.Flink-高级特性-新特性-Streaming Flie Sink介绍代码演示Flink-高级特性-新特性-FlinkSQL整合Hive添加依赖和jar包和配置

20.Flink高级特性--新特性--双流Joinjoin的分类API代码演示-WindowJoin代码演示-IntervalJoin

20.Flink高级特性--新特性--双流Joinjoin的分类API代码演示-WindowJoin代码演示-IntervalJoin

C++基础C++11的新特性

OpenCV3 新特性 - 图像无缝克隆函数演示