博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vc2010中的c++11特性探索
阅读量:6877 次
发布时间:2019-06-26

本文共 1763 字,大约阅读时间需要 5 分钟。

#include 
#include
using namespace std;struct W{ W(int&, int&) {}};struct X{ X(const int&, int&) {}};struct Y{ Y(int&, const int&) {}};struct Z{ Z(const int&, const int&) {}};template
T* factory(A1&& a1, A2&& a2){ return new T(std::forward
(a1), std::forward
(a2));}int&& haha(int&& a){ cout<< "before haha, a is " << a <
(a);}int _tmain(int argc, _TCHAR* argv[]){ char s[]="Hello World!"; int Uppercase = 0; for_each(s,s+sizeof(s),[&](char c) { if(isupper(c)) Uppercase++; }); cout<
<< " uppercase letters in: " << s << endl; /* int my_array[]={1,2,3,4,5,6}; for (int& x : my_array) { cout << x <
(a, b); X* px = factory
(2, b); Y* py = factory
(a, 2); Z* pz = factory
(2, 2); delete pw; delete px; delete py; delete pz; cout << "first a is :" << a <
(a)); cout<< "really a is :" << a <

明天再看看。

早上来仔细研究了下右值的作用,先定义一个类来捕获各种拷贝

class A{public:    A(const string& s = ""):itsFather(s){ cout << itsFather << ": A Constructor\n";}    A(A&& A){ cout << itsFather << ": move constructor" <
<< endl;return *this;} ~A() { cout << itsFather << ": A Destructor\n";} string itsFather; A(const A& a){ cout << itsFather << ": copy constructor" <

再定义2个函数对比下效果:

cout<<"\n\n\n\n";    A B = getA();    cout<<"\n\n\n\n";    A C = GetMoveA();

看看输出结果,好奇怪:

GetA: A Constructor: move constructorGetA: A DestructorGetMoveA: A Constructor: move constructorGetMoveA: A Destructor: A Destructor: A Destructor

原本的方法反而更有效了。第二种方法多了2个临时对象的析构,但这2个都没有copy。

转载于:https://www.cnblogs.com/zhangyonghugo/archive/2012/07/06/2578664.html

你可能感兴趣的文章
qcom 跨平台的串口调试工具 PKGBUILD
查看>>
Delphi 时间格式化,动态显示时间,显示最新时间
查看>>
在JAVA中将NEW一分为2,分步进行[反射机制产生类]
查看>>
Java多态性的两个特殊情况
查看>>
我的友情链接
查看>>
怎么改变Win7登陆背景图片
查看>>
虚拟带库和物理带库比较
查看>>
AD委派加域权限
查看>>
在Delphi 7中使用加密的SQLite
查看>>
wordpress 无用的RSS Feed Cache
查看>>
Linux Vi编辑器的基本使用方法
查看>>
HTTP头域列表与解释 之 response篇
查看>>
一切属他,则名为苦;一切由己,自在安乐。
查看>>
velocity 之坑:不同枚举类(enum)有相同的静态(static)方法,无法访问第二个枚举类...
查看>>
图的遍历方法(深度优先和广度优先算法)
查看>>
鸟巢-一种全新的Native APP开发模式,这篇文章为您解读
查看>>
shell批量查询IP
查看>>
快速生成移动设备应用图标的在线工具 - makeappicon
查看>>
学习linux决心书
查看>>
SVN服务的搭建
查看>>