Limiting the applicability of the carries_dependency attribute
9.12.3 [dcl.attr.depend]
Daveed Vandevoorde

Created on 2009-09-15.00:00:00 last changed 143 months ago


Date: 2010-03-15.00:00:00

[Voted into WP at March, 2010 meeting.]

Date: 2009-10-15.00:00:00

Proposed resolution (October, 2009):

Change 9.12.3 [dcl.attr.depend] paragraph 1 as follows:

...The attribute applies to the declarator-id of a parameter-declaration in a function declaration or lambda, in which case it specifies that the initialization of the parameter carries a dependency to (6.9.2 [intro.multithread]) each lvalue-to-rvalue conversion (7.3.2 [conv.lval]) of that object. The attribute also applies to the declarator-id of a function declaration, in which case it specifies that the return value, if any, carries a dependency to the evaluation of the function call expression.
Date: 2009-09-15.00:00:00

The current wording for the carries_dependency attribute does not limit it to value-returning functions (when applied to the declarator-id, indicating that the return value is affected), nor does it prohibit use in the declaration of a typedef or function pointer. Arguably these meaningless declarations should be prohibited.

Date User Action Args
2010-03-29 00:00:00adminsetmessages: + msg2701
2010-03-29 00:00:00adminsetstatus: ready -> cd2
2009-11-08 00:00:00adminsetmessages: + msg2359
2009-11-08 00:00:00adminsetstatus: open -> ready
2009-09-15 00:00:00admincreate