在[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?