не Хотя синтаксический &
допускаются в этом положении в грамматике (это пример описателя, который является последовательностью: PTR-оператор описатель, &
будучи PTR-оператор), семантический он не имеет смысл и не допускается здесь. Тот факт, что он действителен исключительно с грамматической точки зрения, может указывать на то, почему Visual Studio может его принять.
Рассматривая возможные возможности, это выражение выглядит как определение функции без возвращаемого типа. 7 [dcl.dcl]/6 говорит: «Только в объявлениях функций для конструкторов, деструкторов и преобразований типов может быть опущен decl-specifier-seq». и там нет ~
или operator
, единственная возможность - объявление конструктора.
12.1 [class.ctor]/1 описывает специальный синтаксис декларатора, используемый для конструкторов, и он должен быть только необязательной последовательностью функции-спецификаторы, за которым следует имя класса конструктора. Нет &
или другой ptr-operator разрешен перед именем класса конструктора.