2010-07-27

やはりクラスのattribute-specifierは最初の理解で正しかった

当初、私はクラスの宣言は、先頭にattribute-specifierを書けないものと考えていた。しかし、その後思い直して、以下のふたつのattribute-specifierは、クラスに属する(appertain)と考えていた。

class [[]] C {} ; // #1
[[]] class C {} ; // #2

しかし、これは違うのだ。#1はCに属するが、#2は違う。では何に属するか。

[[]] class C {} c ;

このattribute-specifierは、Cではなく、cに属する。クラスの定義というのは、結局、specifierに過ぎぬのだということを、すっかり忘れていた。危ないところだった。危うく参考書に嘘を書くところだった。ともかく、これでattribute-specifierは、ほぼ理解したはずだ。parametorへも指定できるか、これは普通のはずだ。

David Vandevoordeには、感謝している。

ちなみに、この変更についての理由は、Core issue 962に書いてある。

2 comments:

  1. > [] class C {} c ;
    こんなの書けるわけないよ。[[ ]]の間違いでしょ?
    規格の構文規則を見ていてこの種の間違いをするのは恥ずい…

    > David Vandevoordeには、感謝している。
    ダビードも所詮この程度なのか…

    ReplyDelete
  2. おっと、また間違えた。

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.