Document number:P0028R4
Date: 2016-06-22
Audience: Core Working Group
J. Daniel Garcia (josedaniel.garcia@uc3m.es)
Daveed Vandevoorde (daveed@edg.com)
In 7.6.1/1, modify the production for attribute-specifier as follows:
…
attribute-specifier:
[ [ attribute-using-prefixopt attribute-list ] ]
alignment-specifier
attribute-using-prefix:
using attribute-namespace :
…
Insert a new paragraph immediately after 7.6.1/1:
If an attribute-specifier contains an attribute-using-prefix the attribute-list following that attribute-using-prefix shall not contain an attribute-scoped-token and every attribute-token in that attribute-list is treated as if its identifier were prefixed with N::, where N is the attribute-namespace specified in the attribute-using-prefix. [ Note: This rule imposes no constraints on how an attribute-using-prefix affects the tokens in an attribute-argument-clause.] [ Example:—end example ][[ using CC: opt(1), debug ]] void f() {} Same as [[ CC::opt(1), CC::debug ]] void f() {}
//
[[ using CC: opt(1)]][[ CC::debug ]] void g() {} Okay (same effect as above).
//
[[ using CC: CC::opt(1) ]] void h() {} error: cannot combine using and scoped attribute token
//