1. ホーム
  2. c++

[解決済み] std::stringの値渡し、参照渡し [重複]。

2023-03-30 13:05:37

質問

重複の可能性があります。

const std::string &をパラメータとして渡す時代は終わったのでしょうか?

パラメータとして std::string を値で渡すべきか、それとも参照 (インライン化されていない関数への) で渡すべきでしょうか? また、小さな文字列最適化 (SSO) を使用する実装についてはどうでしょうか?

どのように解決するのですか?

文字列をどのように扱うかによって、複数の回答があります。

1) 文字列をidとして使用する(変更されない)。const参照で渡すのが、ここではおそらく最良のアイデアでしょう。 (std::string const&)

2) 文字列を変更するが、呼び出し側にはその変更を見せたくない。 値で渡すのが望ましい。 (std::string)

3) 文字列を変更するが、呼び出し元にもその変更を見せたい。 参照で渡すのが望ましい。 (std::string &)

4) 文字列を関数に送ると、関数の呼び出し元はその文字列を二度と使わない。 使用方法 移動セマンティクス はオプションかもしれません (std::string &&)