C ++ 11右值引用和变量初始化

时间:2015-07-28 19:02:33

标签: c++ string c++11 reference rvalue

让我们考虑以下代码:

std::string&& rvalue_reference_1 = std::string("some string");
std::string   regular_string("some string");

std::string&& rvalue_reference_2 = "some string";
  1. 第一个和第二个语句的行为方式是否相同?我理解第一个是构建一个临时对象,然后简单地指定一个名字"它。因此它成为常规对象。我错了吗?

  2. 在第三个声明中,我不确定会理解幕后发生的事情。 "一些字符串"是匿名/临时const char*,rvalue_reference_2是对std::string对象的右值引用,而不是对const char*的右值引用...通过编写std::string&&,我们是否隐式致电std::string的构造函数?

0 个答案:

没有答案