Title
Inferred return type of closure object call operator
Status
cd2
Section
7.5.6.2 [expr.prim.lambda.closure]
Submitter
Daveed Vandevoorde

Created on 2009-02-05.00:00:00 last changed 178 months ago

Messages

Date: 2009-07-15.00:00:00

[Voted into the WP at the July, 2009 meeting as part of N2927.]

Date: 2009-07-15.00:00:00

Proposed resolution (July, 2009)

See document PL22.16/09-0117 = WG21 N2927.

Date: 2009-02-05.00:00:00

According to 7.5.6 [expr.prim.lambda] paragraph 10, the following lambda expressions are ill-formed because the return types of the generated operator() functions are an array type and a function type, respectively:

    void f() {
      []{ return ""; };
      []{ return f; };
    }

It would seem reasonable to expect the array-to-pointer and function-to-pointer decay to apply to these return values and hence to the inferred return type of operator().

History
Date User Action Args
2010-03-29 00:00:00adminsetstatus: wp -> cd2
2009-11-08 00:00:00adminsetstatus: dr -> wp
2009-08-03 00:00:00adminsetmessages: + msg2238
2009-08-03 00:00:00adminsetstatus: review -> dr
2009-03-23 00:00:00adminsetmessages: + msg1902
2009-03-23 00:00:00adminsetstatus: open -> review
2009-02-05 00:00:00admincreate