C++11: Участвует ли семантика перемещения при передаче по значению?

У меня есть API, который выглядит так:

void WriteDefaultFileOutput(std::wostream &str, std::wstring target)
{
    //Some code that modifies target before printing it and such...
}

Мне интересно, будет ли разумно включить семантику перемещения, сделав это:

void WriteDefaultFileOutput(std::wostream &str, std::wstring&& target)
{
    //As above
}
void WriteDefaultFileOutput(std::wostream &str, std::wstring const& target)
{
    std::wstring tmp(target);
    WriteDefaultFileOutput(str, std::move(tmp));
}

или это просто шаблон, который компилятор все равно должен понять?

8
задан ildjarn 15 March 2012 в 17:19
поделиться