2015-07-03 3 views

Antwort

12

Dies ist eigentlich eine known bug in Clang.

Der Code ist gültig.

N4140 [dcl.mptr]/1:

In einer Erklärung T D wo D das Formular

verschachtelten-name-specifier*Attribut-specifier-Seq opt cv hat -qualifier-seq optD1

und der nested-name-Spezifizierer eine Klasse bezeichnet, und den Typ des Bezeichners in der Erklärung T D1 ist „abgeleitete-declarator-Typ-Liste T“, dann ist der Typ des Bezeichners der D ist „abgeleiteten -declarator-type-list cv-qualifier-seq Zeiger auf Mitglied der Klasse nested-name-specifier vom Typ T ". Der optionale Attribut-Spezifizierer-seq (7.6.1) gehört zu der Zeiger-zu-Mitglied.

In dieser Definition, die wir in verschachtelten-name-specifier interessiert sind, und es wird definiert, bei [expr.prim.general]/8 als (Hervorhebung von mir):

verschachtelten-name -specifier:

:: Typname ::
Namespace-Namen ::
decltype-specifier ::
verschachtelten-name-specifier Bezeichner ::
verschachtelten-name-specifier template opt einfach-template-ID ::

Verwandte Themen