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