腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
如果
参数
是
T&&
类型
,
它是
通过
move
传递
还是
通过
引用
传递
?
c++
、
move-semantics
、
rvalue-reference
我希望这不是一个愚蠢的问题,我只是想确保我对这个问题的理解
是
清晰的。
如果
通过
RValue
引用
接收到
参数
: struct A { /*
move
and copy constructors here... */ };void demo() f1(A()); f1(std::
move
<A>(A()));
浏览 9
提问于2020-10-05
得票数 0
3
回答
为通用
引用
推导出
参数
'T‘的冲突
类型
c++
、
c++11
、
type-deduction
我还测试了其他一些用例,其中一些使用了
类型
转换。有些可以工作,有些则不能。我问了一个相关的问题。在那里,我有一个例子,每个人都说
通过
vale
是
一个坏主意: int hd(vector<i
浏览 2
提问于2014-07-08
得票数 7
回答已采纳
1
回答
将
引用
作为通用
引用
传递
给函数
c++
、
c++11
、
universal-reference
当将
引用
函数作为通用
引用
传递
给函数时,我很难理解到底发生了什么(推导出了什么
类型
)。(&)int]void(&f)(int) = someFunction; foo(st
浏览 2
提问于2015-06-29
得票数 6
2
回答
移动和转发用例
c++
、
c++11
、
constructor
、
move-semantics
我跟随开始理解C++11中的移动语义和rvalue
引用
。 { MetaData(int size, const string& name) , _metadata(
move
(other.,代码显示,
如果
调用A
浏览 2
提问于2015-09-02
得票数 0
回答已采纳
1
回答
C++将右值
引用
传递
给采用左值
引用
的函数
function
、
c++11
、
rvalue-reference
someFunc(std::forward<T>(fooParam));在这本书中,斯科特解释说,std::forward<T>可以
通过
以下方式实现:
T
的
参数
是
Widget
类型
的右值。当fooParam (
类型
为Widget &&)
传递
给std::forward时,接受
类型
为Widget& param的
参数
的函数如何匹配foo
浏览 2
提问于2016-12-19
得票数 2
1
回答
remove_reference和没有它的区别是什么?
c++
、
rvalue
我编写了一个简单的函数,返回对象rvalue reference.But i不工作的right.But,
如果
我使用std::
move
它的工作,我只看到了remove_reference的区别,或者什么
是
还是
我的角色选错了?template<class T>{} type
浏览 1
提问于2014-04-16
得票数 0
回答已采纳
3
回答
std::
通过
一个例子解释移动
c++
我试图了解std::
move
是
如何工作的,我遇到了一些问题:所以,这就是实现:typename remove_reference<T>::type&&
move
类型
推断规则告诉我们,
如果
我将一个rvalue
传递
给一个
参数
&在本例中,我得到了所
引用
的
类型
,因此
是
string。我不明白的
是
这种
类型</e
浏览 15
提问于2021-12-08
得票数 1
2
回答
当将函数分配给std::function时,调用了哪个函数原型(以及如何调用)?
c++
、
c++11
、
std-function
我不知道的
是
在赋值中调用哪个赋值操作符原型以及如何调用。查看cpp
引用
,它看起来很可能
是
这个函数。template <class Fn> function& operator= (Fn&& fn);template<class Fn>public: Foo() {
浏览 0
提问于2014-06-09
得票数 5
回答已采纳
1
回答
如何在本例中执行模板
参数
演绎?
c++
、
language-lawyer
、
template-argument-deduction
请考虑以下示例:void f(const
T&&
) { std::cout << __PRETTY_FUNCTION__; }; f(std::
move
(cptr));每 模板
参数
推导
是
通过
比较每个函数模板
参数
类型
(称为P)来完成的,其中包含参与模板
参数</
浏览 4
提问于2022-08-16
得票数 1
回答已采纳
1
回答
当lvalue-ref-arg和rvalue-ref-arg作为相同的转发-ref
类型
传递
时,为什么不工作?
c++
、
c++11
、
templates
、
overloading
、
forwarding-reference
#include <type_traits> void f(
T&&
a,
T&&
b){ f(n, std::
move
(n));
T&&
是
一个转发
引用
类型
,所以我认为decltype(a)应该是int&,decltype(b)应该是int&&。但是,上面的代码会产生以
浏览 3
提问于2017-02-23
得票数 4
回答已采纳
3
回答
将函数的返回
类型
声明为
T&&
是
没有意义的吗?
c++
、
c++11
、
return-type
、
rvalue-reference
、
temporary
正如我们所知道的,在大多数常见情况下,
T&&
的意思
是
“这是一个临时对象”。但是,
如果
想要从函数返回临时对象,可以按如下方式声明该函数:T f() T t;}template<class T>{ ......然而,我也发现std::forward()的返回
类型
被声明为
T&&
浏览 1
提问于2013-01-30
得票数 13
回答已采纳
3
回答
这是一个转发参考吗?
c++
、
c++11
、
perfect-forwarding
、
forwarding-reference
Scott Meyer在这个例子中明确了右值
引用
和转发
引用
之间的区别:void f(
T&</
浏览 37
提问于2016-11-26
得票数 23
回答已采纳
5
回答
C++11 `
T&&
`
参数
丢失了`&&`正确的术语吗?
c++
、
c++11
以下C++11代码无法编译:{}void g(
T&&
t) { f(
move
(t)); }g(T())中的T()叫什么?
浏览 2
提问于2013-01-07
得票数 5
回答已采纳
2
回答
尝试使用临时函数交换两个字符串
c++
、
templates
、
pass-by-reference
、
pass-by-value
、
stdstring
另外,您能告诉我,默认情况下stl字符串
是
如何作为
参数
传递
的,即它们
是
通过
值
传递
还是
通过
引用
传递
?
浏览 1
提问于2020-04-20
得票数 9
回答已采纳
2
回答
std::remove_reference解释了吗?
c++
、
templates
、
c++11
、
template-specialization
class T > struct remove_reference<T&> {typedef T type;}; template< class T > struct remove_reference<
T&
难道通用模板本身不足以删除
引用
吗?我之所以在这里感到困惑,是因为在T&或
T&&
专门化中,
如果
我尝试使用::type,我仍然应该分别得到T&或
T&&
,对吗?你能解释一下为什么我们在
move</em
浏览 0
提问于2013-06-08
得票数 49
回答已采纳
4
回答
在属性中
传递
引用
类型
时,C#
是
按值
传递
还是
按
引用
传递
c#
、
pass-by-reference
使用c#、vs2008、winforms
如果
我
通过
属性将
参数
从父窗体
传递
给子窗体,或者实际上
通过
属性
传递
给任何类,而传入C#的paramater im
是
在父窗体中创建的
引用
类型
,那么默认情况下
它是
作为
引用
还是
值
传递
例如,
如果
我
通过
一个属性
传递
一个数据集。
如果
它确实是
通过
值<
浏览 12
提问于2010-02-25
得票数 1
回答已采纳
3
回答
为什么std::forward会禁用模板
参数
推演?
c++
、
visual-studio-2010
、
stl
、
c++11
在VS2010中std::forward
是
这样定义的:_Ty&& forward(typename identity<_Ty>::type& _Argforward _Arg, given explicitly specified type parameter} identity似乎仅用于禁用模板
参数
推导
浏览 2
提问于2011-10-16
得票数 29
回答已采纳
1
回答
模板
参数
演绎,限定-Id和性能
c++
、
template-argument-deduction
& x, std::function<void (
T&&
)> f) { f(std::
move
(x)); }; 由于模板
参数
的推导不能使lambda(0)和std::function<void (
T&&
)>的
类型
相等,实际上,我确实需要将std::function<void (
T&&
)>直接
传递
给gate函数,一个常用的解决方案
是
将lambda函数
参数<
浏览 6
提问于2022-09-07
得票数 0
回答已采纳
2
回答
模板代码中的转发
引用
与const值
引用
c++
、
c++11
、
templates
template<typename T>
如果
我用lvalue调用这个函数,那么T将被推导为T&,由于
引用
折叠规则T& && -> T&,使得arg
参数
的
类型
为T&
如果
使用未命名的临时函数(例如函数调用的结果)调用此函数,则T将被推断为T,从而使arg
参数
成为
T&&
类型
。然而,在foo内部,arg<e
浏览 3
提问于2017-08-31
得票数 9
回答已采纳
2
回答
类型
不推断为r值
引用
:为什么不?
c++
、
c++11
请考虑以下代码:void func(
T&&
param) { else} func(std::
move
(mc3));param is a
浏览 1
提问于2017-02-09
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C+11完美转发及实现方法详解
请问C+11有哪些新特性?
如何理解Rust的默认线程安全?
C+之右值引用
Visual Studio:优化了复制/移动省略
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券