I tried to reduce as much as possible (maybe too much, we'll see...) an issue which is blocking our work on std::bind. Note, the problem disappears if I simplify the testcase further to not use variadic templates while keeping the rest unchanged.
Jason, can you help us? ////////////////// template<typename... _Elements> class tuple; template<typename _Arg> class _Mu; template<typename _Signature> struct _Bind; template<typename _Functor, typename... _Bound_args> class _Bind<_Functor(_Bound_args...)> { template<typename... _Args, typename = decltype(_Functor()(_Mu<_Bound_args>()(_Bound_args(), tuple<_Args...>())...) )> void __call() { } }; template<typename _Functor, typename _Arg> _Bind<_Functor(_Arg)> bind(_Functor, _Arg) { } struct State { bool ready() { return true; } void f() { bind(&State::ready, this); } }; -- Summary: [C++0x] ICE with decltype and variadic templates Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: paolo dot carlini at oracle dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42266