rvalue-reference 相关问题

右值引用是C ++ 11中的一种新语言特性,表示对右值的引用。与参考折叠一起,它们用于实现和启用移动语义和完美转发。

防止传递临时值作为常量引用的方法,其更好地缩放然后删除r值过载

当一个人想要阻止某人传递临时作为const引用时,可以删除r值重载:class Foo {public:Foo(const Bar&bar):mBar(&bar){} Foo(const Bar&...

回答 1 投票 3

传递右值作为参考

我有一些Qt代码,我从我的svn repo下载。我工作了一段时间,但我确信它曾用于编译。我有一个新版本的Qt和编译器(就像我上次的那样)。 ...

回答 4 投票 8

为什么传递右值引用(X &&)是AS IF传递左值引用(X&)?

当我研究右值参考时,我从stackoverflow中找到了一个奇怪的答案。提问者希望避免接收参数作为左值的函数之间的代码重复...

回答 2 投票 2

为什么我的operator =(T &&)模板只绑定到const&而不是&&?

从右值引用和const引用中编写重载函数时,可能会有代码重复,因此我有时会使用相同的代码。如下所示:#include ...

回答 1 投票 3

是否可以使用右值引用作为pimpl句柄?

我想用Pimpl(私有实现)创建一个类。通常你会这样做:A级{私人:B级; B * _pimpl = nullptr;然后我会在.cpp文件中定义它。但是我有 ...

回答 1 投票 2

获得通用/前向参考地址有什么意义?

我遇到了以下代码片段:......模板 auto par_transform_naive(SrcIt first,SrcIt last,DstIt dst,Func && func){.....

回答 1 投票 0

为什么使用单个赋值运算符处理复制和移动赋值效率不高?

以下是C ++ Primer第5版的练习:练习13.53:作为低效率的问题,HasPtr赋值运算符并不理想。解释为什么。实施副本分配......

回答 2 投票 6

如何在可变参数函数中的所有参数上调用std :: forward?

我只是编写一个通用对象工厂并使用boost预处理器元库来创建一个可变参数模板(使用2010并且它不支持它们)。我的函数使用rval引用和std:...

回答 1 投票 90

关于在成员重载中使用std :: move()的问题

这个问题来自C ++ Primer(第5版),最后一个主题是在第15章中模拟虚拟副本。定义两个通过继承相关的类:class Quote {public:virtual Quote * clone()const&...

回答 1 投票 1

当一个完美的转发构造函数存在时,前导左值引用构造函数的意图是什么?

我们来看std :: pair 举个例子。它有以下两个构造函数:constexpr对(const T1&x,const T2&y); //#1模板<class U1,U2类......

回答 2 投票 7

将左值引用移动到成员变量中

假设你有这个简单的类:class GenericClass {public:GenericClass(s td :: unique_ptr) &lref){this-> var = std :: move(lref); } private:std :: unique_ptr&...

回答 1 投票 1

使用模板类完美转发

假设我有一个模板类,例如模板 class Matrix有没有办法定义矩阵乘法运算符*,以便*的参数可以是lvalues或...

回答 2 投票 0

移动后通过右值参考返回

关于以下示例我几乎没有问题:unique_ptr foo(){ unique_ptr a = make_unique(5); return move(a); } unique_ptr&& foo(){ ...

回答 1 投票 1

std :: get on rvalue-reference元组的行为是否危险?

以下代码:#include int main(){auto f = []() - > decltype(auto){return std :: get <0>(std :: make_tuple(0)); }; return f(); (静默地)生成......

回答 1 投票 6

在这种情况下是否会移动值

请考虑以下代码段:class Bar {...}; class Foo {public:Foo(const Bar&bar):bar_(bar){} private:bar bar_; }; int main(){Foo foo({...}); //传递右值...

回答 1 投票 1

rvalue参数无法在函数重载中解析

如何在main()编译中创建最后一行? #包括 #包括 #包括 模板 struct foo {foo(std :: ...

回答 2 投票 2

为什么在C ++中推导出的乐趣类型(T t)和乐趣(T && t)是不同的?

模板 void fun1(T t){}模板 void fun2(T && t){} int i = 1; FUN1(ⅰ); //推导出的T类型是int fun2(i); //推导出的T类型是int&...

回答 2 投票 0

如何将一个类成员函数与param作为rvalue绑定到boost :: function? [关闭]

我尝试将一个类成员函数与param作为rval绑定到boost :: function。但它不起作用。我的示例错误代码:class Class1 {int Foo1(int && b){return b; } ...

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.