私は2つのコンパイラでテストされ、そして文句なし定義以下の両方をサポートして見て驚きました。コンパイラで冗長スコープの資格がサポートされているのはなぜですか?宣言は上の修飾されたときにそれはフラグが立てられているが、これはまた、メソッドのために成功したことを</p> <pre><code>class A { A(); }; A::A::A() {} ^^^ </code></pre> <p>注:
質問:
- これは、有効なC++プログラムですか?
- もしそうなら、それはどのような目的に役立つのですか、それとも単なる副産物ですか?
更新の詳細:
場合、元の質問は、透明または短すぎませんでした:冗長資格が定義(また、上記のように強調)で許可されている理由を、私は好奇心が強いです。
クランAppleのGCC 4.2 + LLVMは
これは尋ねられましたが、私はそれがいくつかよりも見つけるのは難しいと思っています。 – chris
@chris私はいくつかのページを見ていましたが、何も見つかりませんでした。おそらく私はちょうど適切な用語を使用して検索しませんでした。 – justin
これは*役立つかもしれません:http://stackoverflow.com/questions/11423380/why-are-redundant-class-name-qualifiers-allowed – chris