В [dcl.attr.depend]/1 я прочитал:
Атрибут [...]
carries_dependency
[...] может быть применен кdeclarator-id
дляparameter-declaration
в объявлении функции или лямбда, в этом случае он указывает, что инициализация параметра несет зависимость от (1.10) каждого преобразования lvalue-to-rvalue (4.1) этого объекта. Атрибут также может быть применен кdeclarator-id
функции объявление, в этом случае оно указывает, что возвращаемое значение, если оно есть, несет зависимость от оценки выражения вызова функции.
То, что мне не хватает, - это способ применить атрибут к неявному параметру this
.
В качестве примера рассмотрим эту свободную функцию:
void fun(int i, Foo * [[carries_dependency]] f);
и эквивалентная (но для атрибута) версия члена:
void Foo::fun(int i); // can't add [[carries_dependency]] here?