http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58820
Bug ID: 58820 Summary: lambda multiple inheritance operator() not ambiguous Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sutambe at yahoo dot com The following lambda overloads are not ambiguous but they are reported as such. template <class... Fs> struct overload_set : Fs... { overload_set(Fs... f) : Fs(f)... {} }; template <class... Fs> overload_set<Fs...> overload(Fs... x) { return overload_set<Fs...>(x...); } int main(void) { double d = 10; overload( [](int i) { }, [](double d) { }, [](char c) { } )(d); }