У меня есть простой класс:
class X
{
std::string S;
X (const std::string& s) : S(s) { }
};
Я недавно читал немного о rvalue, и Мне было интересно, должен ли я написать конструктор для X
с использованием rvalue, чтобы я мог обнаруживать временные объекты типа std::string
?
Думаю, это должно выглядеть примерно так:
X (std::string&& s) : S(s) { }
Насколько мне известно, реализация std::string в компиляторах, поддерживающих C++11, должна использовать его конструктор перемещения, когда он доступен.