C++中,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&有什么不同?
谢谢!

第1个回答  推荐于2018-09-09
你好,int&&可以理解为右值引用,其作用是将变量绑定到一个临时变量上,一般是函数返回值
如:
int somemethod()
{
int a = 10;
return a;
}
int&& b = some_method();
这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。

int&&作为形参的情况,作用类似。本回答被提问者和网友采纳
第2个回答  2011-02-11
in gcc 4.4.3,
不能通过编译,
你使用的编译器很可能有缺陷。
第3个回答  2011-02-11
int&& 从未见过这样用的,
int& 引用。
你要把你的code贴出来大家才能给出更好的解释。
第4个回答  2011-02-11
Move Semantics 中文叫什么还真不清楚 语义转移?
C++0x里专门讲过这个

说起来很麻烦 你自己搜搜吧

C++中,int&&表示什么意思?和int&有什么不同?
你好,int&&可以理解为右值引用,其作用是将变量绑定到一个临时变量上,一般是函数返回值。如:int somemethod(){ int a = 10;return a;} int&& b = some_method();这样可以减少函数返回操作并且赋值操作时new、delete、copy操作,提高效率。特别是当返回类型比较庞大的时候,作用明显。int&&作为形参...

C++中int和int&怎么区分?到底什么时候该用int,什么时候改用int&呢?
边便是指向的数据是常量,在*右边表示指针本身是常量,根据你的需要使用即可。--- 可以把变量赋值给限定符不少于该变量的变量(限定符包括const volatile mutable等)。比如 const char*p1; const char * const p2 = p1; 是可以的,因为p2的限定符不少于p1,当然 const char *p3=p1也是可以的。...

C++中,int *& 与 int &* 的区别、意义及使用
int &*a 可以解释为,int类型引用 的指针(C++不允许声明 指向引用的指针)。const 是限定符 const int a; \/\/const 限定 int,即 a 是一个变量,类型为int的常量。(所以,int常量不可修改,所以a也不可修改)int const a; \/\/ const 限定 a,即 a 是一个常量,类型为int。const int *a;...

c++ (int) 与(int *)与(int &)区别在哪?
第一种,无论是98,还是‘b’,在内存中的存储形式都是以2进制保存的98,如果使用或c语言的printf就会知道,那是一个格式化输出语句,就是将内存的数据以怎样的形式输出,(int)是以整形的格式输出。第2和3的格式我就不懂了,但第3个应该是输出了第4个元素的内存地址。如果可以很好的理解内存的话...

C++中,int *& 与 int &* 的区别、意义及使用
int else \/\/在16位平台 define int int endif 因为int类型在不同位的计算机上大小不一样,int 类型32位计算机为 4字节 int 类型16位计算机为 2字节 这样同样的代码在不同机器上编译就会产生错误。所以在头文件内定义了宏 int以明确为2字节 int类型。所以你使用int能肯定数据是2字节大小。但是使用...

c++中INT 和INT &返回有什么区别 具体点啊
int& set(){ return a;} 在第二个例子中,返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。set() = 5;是正确的。但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:int& set(){ int a;return a;} 此时就会调用出错,因为a是临时变量...

c++中的&是什么意思
& 用法一:逻辑与,用于将两个数或表达式的值按位与运算,不常用 用法二:取地址,例如int *p=&a;则p里面存放a的地址 用法三:&&表示与,左右两个表达式值的与

c++中INT 和INT &返回有什么区别 具体点啊
int max(int a, int b) \/\/返回的是值 { return (a > b) ? a : b;} int &max(int &a, int &b) \/\/返回的是实参的引用,就是实参本身 { return (a > b) ? a : b;}

int 在C++中是什么意思
int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。1.例如:INT(8.9)将8.9向下舍入到最接近的整数(8)INT(-8.9)将-8.9向下舍入到最接近的整数(-9)2.

c++中int和INT有什么区别?
int是一个数据类型, 而INT可以是宏, 标识符, typedef定义的数据类型, 类类型.但是它一般是用到和int有关的地方.

相似回答