>140
return std::move(temp);

じゃなくて

return temp;

とだけ書いていれば良いのでは?