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); } };
Subject: Bug 42266 Author: jason Date: Fri Dec 4 00:26:27 2009 New Revision: 154964 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154964 Log: PR c++/42266 * cvt.c (convert_from_reference): Do nothing if TREE_TYPE is null. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic97.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cvt.c trunk/gcc/testsuite/ChangeLog
Thanks Jason, it looks like the larger testcases we have also build fine now!
Fixed.