最も厄介な解析とは、関数を宣言するときに予期しない結果を引き起こす可能性がある C の文法的な曖昧さを指します。 。混乱を招く詳細の 1 つは、特定の行が、予期された構文に準拠していないように見える場合でも、関数宣言として解析できることです。
次の行について考えてみましょう。
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>());
この行Most Verxing Parse により、関数宣言として解釈される可能性があります。最初の一時反復子 istream_iterator
ただし、最初の一時反復子がどの型を表すかはすぐにはわかりません。これを理解する鍵は、istream_iterator
これにより、関数呼び出しで引数名を任意に括弧で囲むことができるかどうかという疑問が生じます。答えは「はい」です。引数を強調したり、その目的を明確にしたりしたい場合は、引数名を括弧で囲むことができます。ただし、混乱を招くコードや予期しないコードが発生する可能性があるため、一般的には推奨されません。この構文の主な目的は、C から継承された従来の構文をサポートすることであり、最新の C コードではベスト プラクティスとみなされません。
以上が最も厄介な解析で引数名を括弧で囲むのはどうなるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。