[解決済み] std::string と std::string_view の連結はなぜサポートされていないのですか?
2023-01-21 02:22:08
質問
C++17 以降、私たちは
std::string_view
という、連続した文字列への軽量なビューが追加され、データの不要なコピーを避けることができるようになりました。代わりに
const std::string&
パラメータを持つ代わりに、現在ではしばしば
std::string_view
.
しかし、すぐにわかるのは
const std::string&
から
std::string_view
の連結はサポートされていないため、文字列の連結を使用するコードは壊れます。
std::string
と
std::string_view
:
std::string{"abc"} + std::string_view{"def"}; // ill-formed (fails to compile)
std::string_view{"abc"} + std::string{"def"}; // ill-formed (fails to compile)
の連結をサポートしないのはなぜですか?
std::string
と
std::string_view
を標準にするのですか?
どのように解決するのですか?
にその理由が書かれています。 n3512 string_ref: a non-owning reference to a string, revision 2. by Jeffrey Yasskin を参照してください。
また、operator+(basic_string, basic_string_ref) を省略したのは、LLVMがこのオーバーロードから軽量なオブジェクトを返し、連結を遅延的にしか行わないからです。このオーバーロードを定義してしまうと、後でその軽量な連結を導入するのが大変になります。
に後から提案されています。 std-proposals メーリングリストでは、これらの演算子のオーバーロードを標準に追加することが提案されています。
関連
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】Enterキーを押して続行する
-
[解決済み] std::string を const char* または char* に変換する方法
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] なぜlist.join(string)ではなくstring.join(list)なのでしょうか?
-
[解決済み】大文字と数字を含むランダムな文字列の生成
-
[解決済み】std::string_viewはconst std::string& よりも具体的にどのように速いのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
-
[解決済み】C++でStringBuffer/StringBuilderに相当するものは?