为左值参考指定Rvalue参考

时间:2016-06-18 06:40:13

标签: c++ c++11 c++14

grep -e attribute_x_count  -e attribute_y_count -e attribute_z_count input.txt|cut -d: -f2|sed -e 's/\[//g' -e 's/\],//g'|tr ',' '\n'|awk '{sum+=$1} END {print sum}'

这怎么可能?

这与“参考折叠规则”有关吗?

1 个答案:

答案 0 :(得分:5)

 int&& rv = 10; 
 int& lv = rv; //no error

首先,名为的对象从不是一个右值。其次,由于rv名为的对象,它不是右值,即使它绑定到右值。由于rv是左值,它可以毫无问题地绑定到左值。

请注意,rvalue-ness是表达式的属性,而不是变量。在上面的示例中,rvalue是从10创建的,并绑定到rv,正如我所说,它是左值。