
Hello, I would like to compare two boost::function<void()> objects, but get an "boost::operator ==' : 4 overloads have similar conversions" error. On Visual Studio 2008 SP1, both Win32 and x64 target platform, the following code does not compile: boost::function<void()> one, two; if (one==two) one.clear(); I get the compile error messages below. Any ideas, any help? Regards and thank you in advance Hajo 1>c:\users\hajo kirchhoff\desktop\prj\cct2_2005\r3000trunk\v4\wbr_backend\basic_stream_connector.cpp(31) : error C2666: 'boost::operator ==' : 4 overloads have similar conversions 1> c:\users\hajo kirchhoff\desktop\prj\boost\boost_1_36_0\boost\function\function_template.hpp(821): could be 'void boost::operator ==<R>(const boost::function0<R> &,const boost::function0<R> &)' [found using argument-dependent lookup] 1> with 1> [ 1> R=void 1> ] 1> c:\users\hajo kirchhoff\desktop\prj\boost\boost_1_36_0\boost\function\function_base.hpp(747): or 'bool boost::operator ==<boost::function<Signature>>(Functor,const boost::function_base &)' [found using argument-dependent lookup] 1> with 1> [ 1> Signature=void (void), 1> Functor=boost::function<void (void)> 1> ] 1> c:\users\hajo kirchhoff\desktop\prj\boost\boost_1_36_0\boost\function\function_base.hpp(738): or 'bool boost::operator ==<boost::function<Signature>>(const boost::function_base &,Functor)' [found using argument-dependent lookup] 1> with 1> [ 1> Signature=void (void), 1> Functor=boost::function<void (void)> 1> ] 1> or 'built-in C++ operator==(void (__thiscall boost::function0<R>::dummy::* )(void), void (__thiscall boost::function0<R>::dummy::* )(void))' 1> with 1> [ 1> R=void 1> ] 1> while trying to match the argument list '(boost::function<Signature>, boost::function<Signature>)' 1> with 1> [ 1> Signature=void (void) 1> ]