Dependent function types
Section [temp.dep.expr]
Daveed Vandevoorde

Created on 2005-10-22.00:00:00 last changed 144 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 [temp.dep.expr] paragraph 3 as follows:

An id-expression is type-dependent if it contains:

  • an identifier that was associated by name lookup with one or more declarations declared with a dependent type,

  • a template-id that is dependent,

  • a conversion-function-id that specifies a dependent type, or

  • a nested-name-specifier or a qualified-id that names a member of an unknown specialization.

Date: 2009-10-15.00:00:00

Notes from the October, 2009 meeting:

The consensus of the CWG was that the first point of the issue is not sufficiently problematic as to require a change.

Date: 2005-10-22.00:00:00 [temp.dep.expr] paragraph 3 says,

An id-expression is type-dependent if it contains:
  • an identifier that was declared with a dependent type...

This treatment seems inadequate with regard to id-expressions in function calls:

  1. According to [temp.dep.type] paragraph 6,

    A type is dependent if it is
    • ...
    • a compound type constructed from any dependent type...

    This would apply to the type of a member function of a class template if any of its parameters are dependent, even if the return type is not dependent. However, there is no need for a call to such a function to be a type-dependent expression because the type of the expression is known at definition time.

  2. This wording does not handle the case of overloaded functions, some of which might have dependent types (however defined) and others not.

Date User Action Args
2010-03-29 00:00:00adminsetmessages: + msg2736
2010-03-29 00:00:00adminsetstatus: ready -> cd2
2009-11-08 00:00:00adminsetmessages: + msg2377
2009-11-08 00:00:00adminsetmessages: + msg2376
2009-11-08 00:00:00adminsetstatus: drafting -> ready
2006-04-22 00:00:00adminsetstatus: open -> drafting
2005-10-22 00:00:00admincreate