[cfe-commits] [patch] fix for PR11216

David Blaikie dblaikie at gmail.com
Tue Oct 25 08:06:15 PDT 2011

> It looks pretty good, but I have two requests:

Thanks Doug, committed as r142926

> 1) The "else" that handles class-names is really long. I think the flow would be better if decltype() was handled completely in its own "if" early on, since it shares so little code with the class-name case.

Sure. I was sitting on the fence about how to handle that. The diff
certainly wasn't kind to indenting that code one level.

> 2) Please add some tests that have a dependent decltype expression, to make sure template instantiation works. I'm sure it will, but...

Yep (it's really nice how much of this "just works", really). I added this case:

template<typename T>
struct Derived3 : decltype(T().foo()) { };
struct Foo { Base foo(); };
Derived3<Foo> d;

(& sanity checked myself by deliberately breaking it by renaming
Foo::foo to Foo::fob, at which point it failed appropriately - I
suppose I could add the negative test too if that's appropriate)

More information about the cfe-commits mailing list