腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
右
值
引用
和
左
值
引用
一样
工作
吗
?
我想知道我的假设是否正确,-> Rvalue
引用
就像
左
值
引用
一样
工作
,除了它们只能绑定到Rvalue,因此它们可以用来检测Rvalue。因此,当用作返回类型时,它的
工作
方式就像
左
值
引用
一样
,就像它们返回绑定到的实际对象
一样
。 当用作参数类型时,它们无需任何复制即可传递
值
。我看到很多人在问按
右
值
引用
浏览 3
提问于2017-07-16
得票数 3
2
回答
通用
引用
和
转发
引用
之间有区别
吗
?
、
、
、
、
此函数的参数将绑定到
右
值
引用
:但是,此函数的参数将绑定到
右
值
或
左
值
引用
:void f(T && t);如果函数体调用std::forward,它是否只是一个转发
引用
浏览 1
提问于2016-09-18
得票数 62
回答已采纳
1
回答
有没有可能在没有类型推断的情况下实现类似转发
引用
的行为?
、
、
、
、
最近,我了解了通用(或转发)
引用
。它们只适用于类型推导,如模板或auto / decltype。 当我使用
左
值
引用
(&)时,我不能将它绑定到
右
值
(临时)对象。当我使用一个
右
值
引用
(&&)时,我不能将它绑定到
左
值
对象。转发
引用
可以与非常数
左
值
和
右
值
一起
工
浏览 1
提问于2017-01-17
得票数 4
回答已采纳
1
回答
为什么可以通过常量
左
值
引用
来传递
右
值
?
、
、
在C++中,可以将
右
值
传递给接受常量
左
值
引用
的函数。我不明白为什么会这样。有人能解释一下这是如何
工作
的
吗
?为什么?
浏览 4
提问于2019-09-23
得票数 0
1
回答
std::declval<T>()是如何
工作
的?
、
我正在尝试理解std::declval<T>()是如何
工作
的。std::declval<Foo>().some_func()) my_type; // no construction of Foo 我从了解到,std::declval<Foo>向Foo“添加”了一个
右
值
引用
,由于
引用
折叠规则,它最终要么是一个
右
值
引用
,要么是一个
左
值
引用
。PS:
浏览 0
提问于2015-02-16
得票数 38
回答已采纳
2
回答
返回常量
引用
和
右
值
引用
的区别
、
、
如果我没有错,我认为常量
引用
和
右
值
引用
都可以绑定到
右
值
。返回前者的函数
和
返回后者的函数有什么实际区别
吗
? 编辑。我不能修改前者,但为什么我会对修改
右
值
感兴趣?这有意义
吗
?
浏览 3
提问于2013-03-28
得票数 7
回答已采纳
3
回答
通用
引用
的语法
、
、
、
、
这是一个
右
值
引用
:它不绑定到
左
值
:foo(i); // errortemplate<typename T>void bar(T&& b);bar(i); // okay 这是一个
右
值
<em
浏览 1
提问于2013-01-13
得票数 27
回答已采纳
1
回答
为什么删除了复制
和
移动构造函数的对象仍然可以传递给接受r
值
引用
的函数?
、
、
我有以下代码,它显然是在MSVC
和
GCC中编译的: #include <iostream> { Test() = default;44 After call: 44 我认为应该如何将Test类型的对象传递给函数的唯一方法是使用l-value
引用
或const
引用
。
浏览 20
提问于2021-11-22
得票数 1
回答已采纳
3
回答
C++中
引用
的
引用
或者更确切地说,你什么时候会有“对
引用
的
引用
”?这与普通的旧
引用
有什么不同?我从来没有在现实世界的代码中遇到过这种情况,所以我很好奇什么样的代码会需要它。
浏览 0
提问于2011-04-08
得票数 61
回答已采纳
5
回答
C++11 `T&&`参数丢失了`&&`正确的术语
吗
?
、
f(t)
和
f(move(t))中的t叫什么?你称之为整体效果是什么? 标准中的哪个(哪些)部分处理此问题?
浏览 2
提问于2013-01-07
得票数 5
回答已采纳
1
回答
std::移动实现
、
、
、
我从得到了下一个片段 typedef T type; typedef T type; typedef T type; template <typename
浏览 0
提问于2011-09-08
得票数 0
回答已采纳
3
回答
使用lambda表达式的
右
值
和
左
值
引用
-- gcc与msvc
、
、
、
在C++中,将
右
值
隐式转换为
左
值
引用
是非法的。考虑以下代码,其中一个
左
值
引用
绑定到一个
右
值
( lambda):{ return 0;gcc (4.8.1然而,微软编译器确实接受它,这意味着它要么接受非标准代码,要么C++允许
左
值
引用
绑定到
右</
浏览 0
提问于2013-06-16
得票数 6
回答已采纳
3
回答
为什么as_const禁止
右
值参数?
、
、
我想问为什么as_const禁止
右
值参数, cppreference.com (即为什么标准人员这样做,而不是为什么cppreference.com在这方面特别
引用
他们。这个(人工的)例子会产生一个错误(用户想让它保持安静)指出,如果我们只是删除了
右
值
引用
重载的删除,它将静默地将
右
值
转换为
左
值
。对,但为什么不优雅地处理
右
值
,
浏览 10
提问于2016-08-20
得票数 19
回答已采纳
2
回答
未调用std::function移动构造函数
、
、
makeNew(std::bind(test));从std::bind(test)的结果类型创建临时函数对象,然后将这个临时std::std::function<void()>对象作为
右
值
引用
传递给实际发生的情况(使用VS2010
和
使用调试器单步执行):有人能解释这种行为
吗
?
浏览 2
提问于2014-01-23
得票数 0
2
回答
右
值
和
左
值
之间的精确差异
、
、
后一个是
左
值
,而第一个是
右
值
? 提前感谢
浏览 3
提问于2013-06-28
得票数 10
回答已采纳
3
回答
std::move模板参数是如何推导出来的?
、
、
假设我们有:如果你这样做了foo(a);template<class T> typename remove_reference<T>::type&& std::move(T&& a);s
浏览 0
提问于2013-01-26
得票数 9
回答已采纳
4
回答
为什么通用
引用
会将
右
值
引用
转换为
左
值
引用
、
、
、
、
我认为当一个通用
引用
参数与一个
右
值
引用
参数匹配时,会返回一个
右
值
引用
参数。但是,我的测试表明,通用
引用
函数模板将
右
值
引用
转换为
左
值
引用
。为甚麽呢?" << is_reference<decltype(t)>::value << endl;{ f2(
浏览 13
提问于2016-12-28
得票数 4
2
回答
Rvalue
引用
失去其本质
return 0;因为我可以将prvalue绑定到rvalue
引用
,所以我认为我也可以传递它。为什么上面的方法失败了?
浏览 2
提问于2015-04-24
得票数 0
1
回答
是否存在b/w rvalue
和
rvalue
引用
的区别?
、
、
、
F是
左
值
引用
foo(foo&& g) {...} 我知道g是一个
右
值
,但我在这里听说过,也读过很多人把g作为
右
值
引用
。我的问题是,rvalue
和
rvalue
引用
之间有什么区别,或者它们可以互换使用
吗
?
浏览 1
提问于2014-05-12
得票数 2
4
回答
这里有必要使用` `std::move`
吗
?
、
在下面的代码片段中std::move是必需的
吗
?function<void(int)>&& other_function) my_std_function.swap(std::move(other_function));据我所知,call()接受
右
值
引用
..但是由于
右
值
引用
本身是一个
左
值
,为了调用swap(std::function<void(int)>&&),我必
浏览 1
提问于2016-01-04
得票数 13
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C语言中左值和右值的区别
C+11右值引用(一看即懂)
javascript值类型和引用类型
JavaScript的值类型和引用类型区别
C+中的值传递和引用传递
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券