関数宣言における括弧の曖昧さ
「最も厄介な解析」現象では、テンプレートを使用するときに曖昧さが発生します。このようなインスタンスの 1 つは、関数宣言を解析するときに発生します。次の行を考えてみましょう:
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>());
この行は、関数宣言または変数宣言として解釈できます。問題は、最初の一時反復子を型としてどのように解釈できるかということです。
直観に反して、istream_iterator
この独特の構文は C から継承されており、C ではそのような括弧も間違いとみなされていました。この場合、括弧は式の意味には影響しません。これは単に不必要なノイズとして機能し、混乱を引き起こします。
結論として、指定された行の最初の一時イテレータは istream_iterator
以上が「最も厄介な解析」で「istream_iterator(cin)」を型として解釈するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。