V4 Lambda templates and implicit function templates.

Jason Merrill jason@redhat.com
Wed Sep 11 15:21:00 GMT 2013


On 09/11/2013 03:38 AM, Adam Butcher wrote:
> This is not a complete enough description.  It only ICEs instantiating
> the call op through the decltype return of the conversion op if the
> return type of the call op is a deduced one (i.e. unspecified or
> specified explicitly as 'auto').  If the lambda call op is instantiated
> explicitly (i.e. the lambda is called) prior to using the conversion op
> then all is well.  It seems to only occur if there are variables
> declared within the lambda body or accessible via the lambda's 'this'.

Sounds like the problem is that the compiler is trying to instantiate a 
function while cp_unevaluated_operand is set.  But that shouldn't be an 
issue because push_to_top_level clears cp_unevaluated_operand.  How does 
it come to be set when instantiating the local variable?

Jason



More information about the Gcc-patches mailing list