ユーティリティ関数があるとしましょう:
std::string GetDescription() { return "The description."; }
文字列リテラルを返しても大丈夫ですか?暗黙的に作成されたstd::string
オブジェクトはコピーされますか?
私はいつもこのようにそれを返すことを考えました:
std::string GetDescription() { return std::move(std::string("The description.")); }
しかし、もちろんそれはより長く、より冗長です。また、コンパイラRVOが少し役立つと想定することもできます。
std::string GetDescription() { return std::string("The description."); }
それでも、私はそれが何ができるのかではなく、それが実際に何をしなければならないのかわかりません。