http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519
--- Comment #9 from Yukhin Kirill <kirill.yukhin at intel dot com> 2011-06-30 15:37:04 UTC --- One more point for FE guys. Function definition have no difference between 4 args. Here it is include/base/thread_management.h: template <typename PFun, typename C, typename ArgList> static inline void do_call (PFun fun_ptr, C &obj, ArgList &arg_list, internal::return_value<RT> &ret_val, const int2type<4> &) { ret_val.set ((obj.*fun_ptr) (arg_list.template get<0>(), arg_list.template get<1>(), arg_list.template get<2>(), arg_list.template get<3>())); }