c++ の場合 RVO (return value optimization) が最高に効けば

string f() { return string(“123”); }

void f(void * retval) { new (retval) (“123);}
のように戻り値を呼び出し側が渡した領域に直接コンストラクトするから、

void f(string &s) { s = “123”; }
よりも高速になる可能性がかなりあるんだよね
vectorでもなんでも同じだけど

どうでもいいか