ホームページ > バックエンド開発 > C++ > C の二項演算子の引数でイニシャライザ リストが制限されているのはなぜですか?

C の二項演算子の引数でイニシャライザ リストが制限されているのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-12 16:12:14
オリジナル
643 人が閲覧しました

Why Are Initializer Lists Restricted in C   Binary Operator Arguments?

演算子の引数の初期化子リスト

演算子の右側 (RHS) での初期化子リストの使用。これは、 C 11 では、この制限の背後にある理由について疑問が生じます。

C 標準では、 「 」、「*」、または「<<」などの二項演算子の右側で初期化子リストを直接使用します。これは、標準の §5 に従って初期化子リストが式とみなされず、関数や二項演算子の引数での使用が禁止されているという事実に由来します。

初期化子リストの使用を容易にするために、標準では例外が導入されています。ただし、二項演算子にはそのような例外はなく、初期化子リストは両側で制限されたままになります。

この制限の背後にある決定については、Stroustrup と Dos Reis (2007) による N2215 で説明されています。イニシャライザ リストを左側のオペランドとして許可すると、イニシャライザ リストとブロックの両方に中かっこが使用されるため、解析の競合が発生します。

さらに、イニシャライザ リストは両側ではなく右側でのみ許可されると見なされます。過度な矛盾を生じさせること。したがって、初期化子リストは、関数の引数、添え字、代入などの特定のコンテキストでは許可されますが、二項演算子の引数の一般的な場合には許可されません。

以上がC の二項演算子の引数でイニシャライザ リストが制限されているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート