Переезд :что для этого нужно?

Что нужно для использования оператора присваивания перемещения std ::string (в VC11 )?

Я надеялся, что это будет использоваться автоматически, так как v больше не нужен после присваивания. Требуется ли в этом случае стандартный ход ::? Если это так, я мог бы также использовать обмен не -С++ 11.

#include <string>

struct user_t
{
    void set_name(std::string v)
    {
        name_ = v;
        // swap(name_, v);
        // name_ = std::move(v);
    }

    std::string name_;
};

int main()
{
    user_t u;
    u.set_name("Olaf");
    return 0;
}
6
задан XTF 7 May 2012 в 21:46
поделиться