C++0xのCommittee Draftへのコメントへのコメント
コメント一覧を一通り読みましたが, 来週の会議には後半から3時間くらいしか出れないので今の内にコメントを書いておきます。
コンパイラ実装上の観点を中心に。
01. decltypeにスコープ演算子(::)を使用できない
これは賛成です。
ところで, simple-type-specifierからdecltypeを削除しちゃったら, 型として使えませんからこの削除はいけません。
また,
nested-name-specifier: ... decltype(expression) ::
の最後の::が抜けています。
# この場合, 構文規則に衝突は起きていないだろうか...?
04. noreturn属性の挙動
attributeはコンパイラが解析できない情報を教えてあげる為にあるものですから, attributeが正しいかコンパイラが解析するというのは本末転倒です。
ここでいう「返る」は「返るパスがある」とは意味が違いますから, コンパイラで解析することは不可能です。
# ところで,個人的にはこういうattributeは処理系任せにしちゃった方が良いんじゃないかと思うんですがどうなんでしょうか。どっちみち, 処理系がいろいろ新しいattribute追加しだすと思うので。attribute用の構文を用意したというだけではいけないのでしょうか。