草庐IT

pNewLayer_p

全部标签

c++ - 右值参数如何工作?

所以我真的很惊讶地发现在这段代码中:voidAddLayer(shared_Layer_ptr&&pNewLayer_p){m_layers.push_back(pNewLayer_p);//*}被调用的push_back是“¶m”,而不是“&¶m”版本。m_layers是一个std::vector。由于pNewLayer_p是一个“&&”,我虽然它是一个该死的右值..我设法获得push_back(“&¶m”)调用的唯一方法是使用std::move:m_layers.push_back(std::move(pNewLayer_p));对我来说似乎是多余的,因为p