rvalue-reference相关内容

构造函数的首选参数传递

有传递构造函数参数的首选做法吗?特别是如果这些构造函数参数用于初始化成员变量。 一个简化的例子。 class Example { public: 示例(/ * type-1 * / str,/ * type-2 * / v): m_str str), m_v(v) {} / *其他方法* / private: std :: string m_str ; ..
发布时间:2016-10-28 04:26:59 C/C++开发

C ++操作符重载指针

我不知道(只是出于好奇)为什么操作符重载是不允许在C ++的指针。我的意思是这样的: Vector2d * operator +(Vector2d * a,Vector2d * b){return new Vector2d(ax + bx ,ay + by); } Vector2d * a = new Vector2d(1,1); Vector2d * b = new Vect ..
发布时间:2016-10-28 02:23:16 C/C++开发

我需要重载方法接受const左值引用显式的右值引用吗?

目前我正在玩的右值引用(C ++ 11,g ++与gnu ++ x0),我想在我的类中实现移动语义,因为它只是感觉“正确”。 我需要重载通常会接受const lvalue引用的每个函数,以从右值引用中获益吗? 让我们说这是我的示例类: class Person { public: Person() Person(std :: string& name); Perso ..
发布时间:2016-10-27 22:03:48 C/C++开发

Rvalue ref和完美转发

我读过几篇关于&&我只是好奇如果有: void fnc_1(int& p) { // ... } void fnc(int& r) { fnc_1(r); //我想/一世?调用它像这样:fnc_1(std :: forward(r)) } fnc_1(r)只要传递'r'就足够了? r 是一个左值,就像任何其他变量,不管类型。是的,没错, ..
发布时间:2016-10-27 06:19:24 C/C++开发

C ++ 11 - 区分右值指针

例如,虽然rvalue “Hello,World”的类型为 const char * 。 const char * 本身并不意味着指针不能被改变。不能更改 char * const 指针,但这不是编译器构造的。 意味着对于包含 const char * 的任何容器,数据应该通过除C ++的移动语义之外的其他方法复制?有没有办法只是移动编译器构造的字符串并保留所有其他字符串单独? 例如, ..
发布时间:2016-10-25 15:23:16 C/C++开发

一个右值引用绑定到一个函数?

我用GCC,Clang,ICC和VS测试了以下代码: void f(){} void g(void(&&)()){} int main(){ g(f); } 正如我们所看到的, g 采用右值引用,但 f 是一个左值,一般来说,右值引用不能绑定到左值。这正是ICC抱怨的 : 错误:右值引用不能绑定到左值 VS也会发生错误,但是出 ..
发布时间:2016-10-23 22:27:22 C/C++开发

右值引用与赋值运算符

在本文中 http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/comment-page-1/#comment-1877 : T& T :: operator =(T const& x)// x是对源的引用 { T tmp(x); // copy construction of tmp does the hard wo ..
发布时间:2016-10-23 20:19:34 C/C++开发

在c ++ 11中使用右值引用

我想实现一个函数填充一个向量,然后返回一个右值引用。我累了像: std :: vector &&& fill_list(){ std :: vector res; ... do something to fill res ... return res; } int main(int argc,char ** argv){ std :: vect ..
发布时间:2016-10-23 14:21:52 C/C++开发