在[dcl.attr.depend]/1中,我读到:
属性[...]
我缺少的是一种将属性应用于隐式
例如,考虑以下自由函数:
属性[...]
carries_dependency
[...] 可以应用于函数声明或lambda中parameter-declaration
的declarator-id
,这种情况下它指定参数的初始化对该对象的每个左值转右值转换(4.1)(1.10)都具有依赖性。该属性也可以应用于函数声明的declarator-id
,这种情况下,如果有的话,它指定返回值对函数调用表达式的求值具有依赖性。我缺少的是一种将属性应用于隐式
this
参数的方法。例如,考虑以下自由函数:
void fun(int i, Foo * [[carries_dependency]] f);
并且它有一个等效的成员版本(但是针对属性):
void Foo::fun(int i); // can't add [[carries_dependency]] here?
[[carries_dependency]] void fun( int );
或者在声明中写成void fun(int) [[carries_dependency]];
。 - David Rodríguez - dribeas