Boost logo

Boost Users :

Subject: [Boost-users] A compilation problem at function10.hpp in the function library
From: Bob Lim (cbasicnet_at_[hidden])
Date: 2008-09-23 21:40:17


Hi guys,

I cannot compile without error for function10.hpp in Visual Studio 2005 Pro. A simple source file to reproduce the problem is attached(Test.cpp). There is no such problem with other function0-9.hpp, except for function10.hpp.

The error message encounter is as below,

1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\mem_fn.hpp(318) : warning C4180: qualifier applied to function type has no meaning; ignored
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(381) : see reference to class template instantiation 'boost::_mfi::dm<R,T>' being compiled
1>        with
1>        [
1>            R=int (int,int,int,int,int,int,int,int,int),
1>            T=MyClass
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(277) : see reference to function template instantiation 'bool boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::assign_to<F>(MemberPtr,boost::detail::function::function_buffer &,boost::detail::function::member_ptr_tag)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            F=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int),
1>            MemberPtr=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(779) : see reference to function template instantiation 'bool boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::assign_to<Functor>(F,boost::detail::function::function_buffer &)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            Functor=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int),
1>            F=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(612) : see reference to function template instantiation 'void boost::function10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::assign_to<Functor>(Functor)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            Functor=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]
1>        d:\myprojects\testvaltype\testvaltype\testvaltype.cpp(45) : see reference to function template instantiation 'boost::function10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::function10<int(__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)>(Functor,int)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            Functor=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]
1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\mem_fn.hpp(326) : warning C4180: qualifier applied to function type has no meaning; ignored
1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\mem_fn.hpp(331) : warning C4180: qualifier applied to function type has no meaning; ignored
1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\mem_fn.hpp(345) : warning C4180: qualifier applied to function type has no meaning; ignored
1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\mem_fn.hpp(350) : warning C4180: qualifier applied to function type has no meaning; ignored
1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\mem_fn.hpp(362) : warning C4180: qualifier applied to function type has no meaning; ignored
1>d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(123) : error C2064: term does not evaluate to a function taking 10 arguments
1>        class does not define an 'operator()' or a user defined conversion operator to a pointer-to-function or reference-to-function that takes appropriate number of arguments
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(117) : while compiling class template member function 'int boost::detail::function::function_obj_invoker10<FunctionObj,R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::invoke(boost::detail::function::function_buffer &,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9)'
1>        with
1>        [
1>            FunctionObj=boost::_mfi::dm<int (int,int,int,int,int,int,int,int,int),MyClass>,
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(413) : see reference to class template instantiation 'boost::detail::function::function_obj_invoker10<FunctionObj,R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>' being compiled
1>        with
1>        [
1>            FunctionObj=boost::_mfi::dm<int (int,int,int,int,int,int,int,int,int),MyClass>,
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(297) : see reference to function template instantiation 'void boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::init<F>(FunctionObj,boost::detail::function::function_obj_tag)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            F=boost::_mfi::dm<int (int,int,int,int,int,int,int,int,int),MyClass>,
1>            FunctionObj=boost::_mfi::dm<int (int,int,int,int,int,int,int,int,int),MyClass>
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(363) : see reference to function template instantiation 'void boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::init<boost::_mfi::dm<int (int,int,int,int,int,int,int,int,int),T>>(F)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            T=MyClass,
1>            F=boost::_mfi::dm<int (int,int,int,int,int,int,int,int,int),MyClass>
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(297) : see reference to function template instantiation 'void boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::init<F>(MemberPtr,boost::detail::function::member_ptr_tag)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            F=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int),
1>            MemberPtr=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(265) : see reference to function template instantiation 'void boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::init<F>(F)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            F=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]
1>        d:\downloads\boost_1_36_0\boost_1_36_0\boost\function\function_template.hpp(778) : see reference to function template instantiation 'boost::detail::function::basic_vtable10<R,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>::basic_vtable10<Functor>(F)' being compiled
1>        with
1>        [
1>            R=int,
1>            T0=MyClass *,
1>            T1=int,
1>            T2=int,
1>            T3=int,
1>            T4=int,
1>            T5=int,
1>            T6=int,
1>            T7=int,
1>            T8=int,
1>            T9=int,
1>            Functor=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int),
1>            F=int (__thiscall MyClass::* )(int,int,int,int,int,int,int,int,int)
1>        ]

------
Thank you for looking into this.

Best regards,
Bob Lim





Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net