腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
防止
通过
引用
传递
右
值
、
、
、
因此,对于某些类来说,将const
引用
作为成员字段是非常安全的,例如: public:A a("some temporal string object");如何
防止
这种行为?如果它导致编译错误,那就更好了。
浏览 8
提问于2017-06-23
得票数 5
回答已采纳
1
回答
C++移动语义(和
右
值
引用
)与普通
引用
、
、
在阅读一些关于std::move语义和rvalue
引用
的文章时,我了解到引入它们是因为复制数据是一项昂贵的工作。是真的!复制成本很高,但这不就是为什么我们在C++中有“
引用
”的原因吗?它们也只是帮助
传递
变量的地址,并
防止
昂贵的复制过程。我的问题主要涉及到函数。我的意思是,当你将一个变量
传递
给一个函数时,哪个更好&为什么?:- 1.
通过
左
值
<em
浏览 0
提问于2015-06-23
得票数 0
2
回答
右
值
引用
和左
值
引用
一样工作吗?
我想知道我的假设是否正确,-> Rvalue
引用
就像左
值
引用
一样工作,除了它们只能绑定到Rvalue,因此它们可以用来检测Rvalue。因此,当用作返回类型时,它的工作方式就像左
值
引用
一样,就像它们返回绑定到的实际对象一样。 当用作参数类型时,它们无需任何复制即可
传递
值
。我看到很多人在问按
右
值
引用
和按
值
(以及按左
值
引用
)返回的区别是什么,但不能
通过<
浏览 3
提问于2017-07-16
得票数 3
2
回答
传递
右
值
引用
与非常量左
值
引用
、
、
、
如果我把一个变量
传递
给一个函数后没有用到它,我是
传递
一个非常量的左
值
引用
,还是使用std::move来
传递
一个
右
值
引用
,这有关系吗?假设有两个不同的重载。在这两种情况下,唯一的区别是
传递
的对象的生命周期,如果我
通过
右
值
引用
传递
,它会更早结束。还有其他需要考虑的因素吗?
浏览 2
提问于2013-12-15
得票数 1
2
回答
为什么要按
右
值
引用
std::initializer_list而不是按
值
呢?
、
、
、
我见过的大多数使用std::initializer_list的C++11代码都是
通过
值
获取的,但有时也是
通过
右
值
引用
获取的。有什么好的理由这样做吗?initializer_list<int>);但我偶尔会看到这样的事情发生: public:}; 我大体上理解
右
值
引用
的用法和目的initial
浏览 72
提问于2014-02-19
得票数 17
回答已采纳
2
回答
不带类型推导的LValue和Rvalue的C++
引用
、
、
、
、
我正在读一个关于左
值
/
右
值
引用
的很好的教程。如果我没理解错的话,当有类型推导的时候,像T&&这样的东西可以同时接受左
值
和
右
值
。 但是,有没有办法在没有泛型类的情况下实现这一点呢?我希望避免重复接受左
值
和
右
值
的所有方法。当然,也要避免
通过
值
传递
大对象。
浏览 1
提问于2015-01-01
得票数 0
1
回答
RVO:返回
值
通过
值
传递
,即使显式分配给常量
引用
也是如此
、
、
、
我有一个设置框架,它最终将
值
缓存到boost::any的std::map中。 std::map<std::string, boost::any> cache;现在,我并不指望这是一个大问题,因为我认为多亏了RVO魔术,设置框架拥有的对缓存
值
的
引用
应该已经被回收了-特别是当客户端显式地将返回
值
封装在con
浏览 5
提问于2017-06-20
得票数 2
1
回答
C++将
右
值
引用
传递
给采用左
值
引用
的函数
、
、
someFunc(std::forward<T>(fooParam));在这本书中,斯科特解释说,std::forward<T>可以
通过
以下方式实现:T&& forward(typename remove_reference<T>::type& param) return static_cast<T&&>(param);假设
传递
给foo的参数是Widget类型的
右
值<
浏览 2
提问于2016-12-19
得票数 2
2
回答
关于r
值
引用
的混淆
、
、
#include <iostream> std::cout <<
浏览 3
提问于2012-05-15
得票数 4
回答已采纳
3
回答
当我们
通过
值
将一个对象作为参数
传递
给一个方法时,为什么会调用复制构造函数?
、
、
当我
通过
值
将对象作为参数
传递
给函数时,为什么会调用复制构造函数?请参见我的以下代码:我正在将一个类的对象作为参数按
值
传递
给函数display(),但它在控件命中display()函数之前调用了复制构造函数。我不明白为什么。
浏览 0
提问于2013-05-24
得票数 17
回答已采纳
1
回答
std::thread参数中的函数指针...列表
、
、
我试图给我的std::thread参数列表一个函数指针,但我得到了一堆我不理解的编译错误(@ MSVC\14.28.29333\include\thread(43,14): error C2672: 'invoke' : fonction correspondante surchargée introuvable [overloaded function not found])。#include <thread>void
浏览 27
提问于2021-02-19
得票数 3
回答已采纳
3
回答
常量的指针
、
众所周知,
通过
引用
将参数
传递
给函数是一种很好的做法(特别是当它们是大尺寸的结构时)。为了应用“最小特权”原则,如果该函数不改变这些
传递
的变量的
值
,那么我们需要将它们的
引用
作为常量的指针
传递
。我的问题是,作为常量的指针
传递
并不能阻止改变函数中的
值
(你可以考虑附加的代码),那么我们如何
防止
这种做法呢?void print(const int *ptr) { printf("%d\n", *pt
浏览 3
提问于2016-03-11
得票数 0
2
回答
通过
rvalue-reference获取参数的所有权
、
、
、
我想说明的是,我的类A的构造函数将获得
传递
的Data参数的所有权。最明显的做法是按
值
获取unique_ptr:{ A(std::unique_ptr<Data> data) : _data(std::move(data)) {} }; 然而,就我的用例而言,没有理由让Data成为指针,因为
值
类型就足够了。我能想到的唯一一个明确表明Data将归A所有的选择是
通过
rvalue-reference
浏览 14
提问于2016-09-27
得票数 13
回答已采纳
2
回答
为什么我不能使用未命名的临时对象构造std::istream_iterator?
、
、
g++允许从ifstream实例构造istream_iterator:std::istream_iterator<std::string> iter1(ifstr);std::istream_iterator<std::string> iter2(std::ifstream("test.txt"));错误:对‘std::istream_iterator,ptrdiff_t>::istream_
浏览 13
提问于2010-05-07
得票数 2
2
回答
使用
右
值
引用
的临时值的生命周期的延长
、
、
、
时,如果
引用
临时值的表达式是x
值
表达式,则
右
值
引用
不会延长临时值的生存期。因为std::move返回一个
右
值
引用
,所以调用它的表达式是一个x
值
,所以下面的结果是一个悬空
引用
:{但这是我一片空白的地方
浏览 2
提问于2012-11-27
得票数 9
回答已采纳
4
回答
通过
std::bind
传递
右
值
、
、
、
、
我想
通过
std::bind将一个
右
值
传递
给一个在C++0x中接受
右
值
引用
的函数。我想不出该怎么做。
浏览 3
提问于2011-02-02
得票数 31
回答已采纳
2
回答
唯一指针: LValue
引用
与RValue
引用
函数调用
、
、
、
、
我开始使用c++ std::unique_ptrs,偶然发现了以下问题: 我希望将我的唯一指针的
引用
传递
给一个函数,并为该函数中的指针赋一个新
值
。直观地说,我认为该函数需要一个lvalue
引用
才能修改指针。但是,在下面的代码示例中,两个选项(lvalue
引用
和rvalue
引用
+ std::move)做了相同的事情(我想)。
浏览 17
提问于2020-04-07
得票数 2
回答已采纳
2
回答
未调用std::function移动构造函数
、
、
makeNew(std::bind(test));从std::bind(test)的结果类型创建临时函数对象,然后将这个临时std::std::function<void()>对象作为
右
值
引用
传递
给
浏览 2
提问于2014-01-23
得票数 0
2
回答
防止
非常量左
值
解析为
右
值
引用
,而不是常量左
值
引用
、
、
、
我在重载一个函数时遇到了问题,
通过
常量
引用
来获取一个
值
,或者如果它是一个
右
值
,那么它就是一个
右
值
引用
。问题是我的非常量左
值
绑定到函数的
右
值
版本。我在VC2010中做这件事。我如何
防止
这种行为?为什么这是默认的--鉴于允许修改
右
值
引用
,这似乎很危险,这给我留下了一个意外修改的局部变量。 编辑:只是添加了函数的非模板版本,它们可以正
浏览 0
提问于2011-10-13
得票数 20
回答已采纳
1
回答
返回
值
优化与
右
值
引用
、
、
我了解了有关
防止
临时对象生成的返回
值
优化(、、)。实际上,我可以只返回
值
,而不用担心复制对象会降低性能吗?
浏览 0
提问于2013-06-18
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Python里参数是值传递还是引用传递?
C+中的值传递和引用传递
Java值传递和引用传递-JAVA成长之路
【Python基础】Python「参数传递机制」:是值传递还是引用传递?
Java参数传递到底是按 值传递 还是 引用传递 ?
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券