Должен ли я писать конструкторы, используя rvalue для std::string?

У меня есть простой класс:

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, должна использовать его конструктор перемещения, когда он доступен.

14
задан Bartek Banachewicz 31 May 2012 в 15:05
поделиться