C++中,int&&表示什么意思?和int&有什么不同?
像下面这个语法,居然也能够编译通过:int_A=100;voidfunc(int&&a){a=_A;}并且在stl中也有类似的语法,例如<utility>的第242行:t...
像下面这个语法,居然也能够编译通过:
int _A = 100;
void func(int &&a) {
a = _A;
}
并且在stl中也有类似的语法,例如<utility>的第242行:
template<class _Other1,
class _Other2>
pair(_Other1&& _Val1, _Other2&& _Val2)
: _Mybase(_STD forward<_Other1>(_Val1),
_STD forward<_Other2>(_Val2))
{ // construct from moved values
}
请问:int&&与int&有什么不同?
谢谢! 展开
int _A = 100;
void func(int &&a) {
a = _A;
}
并且在stl中也有类似的语法,例如<utility>的第242行:
template<class _Other1,
class _Other2>
pair(_Other1&& _Val1, _Other2&& _Val2)
: _Mybase(_STD forward<_Other1>(_Val1),
_STD forward<_Other2>(_Val2))
{ // construct from moved values
}
请问:int&&与int&有什么不同?
谢谢! 展开
展开全部
你好,int&&可以理解为右值引用,其作用是将变量绑定到一个临时变量上,一般是函数返回值。
如:
int somemethod()
{
int a = 10;
return a;
}
int&& b = some_method();
这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。
int&&作为形参的情况,作用类似。
如:
int somemethod()
{
int a = 10;
return a;
}
int&& b = some_method();
这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。
int&&作为形参的情况,作用类似。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
in gcc 4.4.3,
不能通过编译,
你使用的编译器很可能有缺陷。
不能通过编译,
你使用的编译器很可能有缺陷。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int&& 从未见过这样用的,
int& 引用。
你要把你的code贴出来大家才能给出更好的解释。
int& 引用。
你要把你的code贴出来大家才能给出更好的解释。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Move Semantics 中文叫什么还真不清楚 语义转移?
C++0x里专门讲过这个
说起来很麻烦 你自己搜搜吧
C++0x里专门讲过这个
说起来很麻烦 你自己搜搜吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |