Является ли эта программа правильной -> с использованием C ++ 0x N3242 - PullRequest
2 голосов
/ 17 марта 2011

Класс - это тип.Его имя становится именем класса (9.1) в своей области видимости.

    class-name:
           identifier
           simple-template-id

Спецификаторы классов и разработанные спецификаторы типов (7.1.6.3) используются для создания имен классов.Объект класса состоит из (возможно, пустой) последовательности членов и объектов базового класса.

    class-specifier:
           class-head { member-specificationopt }
    class-head:
           class-key attribute-specifier-seqopt
    class-head-name
    class-virt-specifier-seqopt
    base-clauseopt
    class-key attribute-specifier-seqopt
    base-clauseopt

        class-head-name:
           nested-name-specifieropt class-name
      class-virt-specifier-seq:
           class-virt-specifier
           class-virt-specifier-seq class-virt-specifier
      class-virt-specifier:
           final
           explicit
      class-key:
           class
           struct
           union   

Класс-virt-specifer-seq должен содержать не более одного из каждого класса-virt-specifer.

Спецификатор класса, глава класса которого опускает имя-класса, определяет безымянный класс.[Примечание: безымянный класс, таким образом, не может быть окончательным или явным.- примечание конца]

ЗДЕСЬ: они использовали -> final, явный как class-virt-specifer:

для этого я должен использовать так:

 1) struct A{ void f();};
    struct B final : A{void f();};
    int main() {   return 0; }
 2) struct A{ void f();};
    struct B explicit : A{void f();};
   int main() {   return 0; }
   etc...

Может ли кто-нибудь подсказать правильное использование thi ... если оно неверно

И: Скажите, пожалуйста, какой компилятор будет поддерживать эту функцию (я знаю VC ++, GCC 4.6.0поддерживает много функций) Но GCC не поддерживает вышеупомянутую функцию .. Пожалуйста, предложите мне, что сделать, чтобы проверить это?

1 Ответ

1 голос
/ 17 марта 2011

Похоже, что все будет в порядке, но я не думаю, что какой-либо компилятор пока реализует это.

Он также может быть изменен, так как есть запрос на удаление этого:

http://www.open -std.org / ОТК1 / SC22 / wg21 / документы / документы / 2011 / n3234.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...