[ dcl.attr.depend ]/1で、次のように読みました。
属性[...] [...] は、関数宣言またはラムダの a
carries_dependency
に適用できます。この場合、パラメーターの初期化が (1.10) 各左辺値から右辺値への依存関係を運ぶことを指定します。そのオブジェクトの変換 (4.1)。この属性は、関数宣言の に適用することもできます。この場合、戻り値があれば、それが関数呼び出し式の評価に依存することを指定します。declarator-id
parameter-declaration
declarator-id
私が見逃しているのは、属性を暗黙的this
なパラメーターに適用する方法です。
例として、次の free 関数を考えてみましょう。
void fun(int i, Foo * [[carries_dependency]] f);
そしてそれは同等です(ただし、属性については)メンバーバージョン:
void Foo::fun(int i); // can't add [[carries_dependency]] here?