Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。hoge.cppなどとするとコンパイルが失敗して次のようなエラーメッセージが出ます。hoge.cppだとコンパイルが成功します。下部の質問にお答えいただけると助かります。票51.どうして(A)だとコンパイルが失敗して、(B)だと成功するのでしょうか?C++11より前のC++の字句解析処理で、>>は右シフト演算子としての解釈が優先されていたためです。(A)と(B)の中間で、こんなのはコンパイルが通るはず(エラーメッセージでもそう言ってます)です。>Q※空白が1個挟まっているせいで>>が右シフト演算子という解釈があり得なくなる。(B)ではもちろん>>なんて出てきませんから、解釈の問題とかは起こらないわけです。2.(A)でも、C++11でコンパイルするとコンパイルが成功するのはどういう仕様追加によるものでしょうか?C++11では、左山括弧としての<が直近にある場合、>記号が連続しても右山括弧として解釈されるよう構文規則が変更されました。したがって(A)の場合の>>は、C++11では右山括弧が連続しているものとみなされます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。