[解決済み] カンマ演算子をオーバーロードするタイミングは?
2023-06-23 14:36:52
質問
C++のカンマ演算子のオーバーロードに関する質問をSOでちょくちょく見かけるのですが(主にオーバーロードそのものとは関係なく、シーケンスポイントの概念など)、不思議に思っています。
いつ は をオーバーロードしますか?その実用的な使用例にはどのようなものがありますか?
私の頭の中には、次のような例を見たことも、必要なことも思いつきません。
foo, bar;
のように、実際のコードで使われることがあるのか、気になるところです。
どのように解決するのですか?
に少し強調を変えてみましょう。
いつ あなたは コンマをオーバーロードしていませんか?
答えは 絶対にありません。
例外はあります。テンプレートメタプログラミングをしている場合。
operator,
は演算子優先順位リストの一番下に特別な場所があり、SFINAE-guardなどを構築するのに便利な場合があります。
私が見た中で、オーバーロードの実用的な使い方は2つだけです。
operator,
は両方とも
ブースト
:
- Boost.Assign
- ブースト.フェニックス - は、Phoenixラムダが複数のステートメントをサポートすることを可能にするという点で、ここでの基本的なものです。
関連
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】構造体のベクター初期化について
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] 配列のベクトルを扱う正しい方法