Compilation errors upgrading boost from 1.34 to 1.37 (Windows)

Dear all, I've just upgraded the boost library from 1.34 to 1.37 on Windows. When I try to compile our software with the new library version (both with VS 7.0 and with VS 9.0) I meet 2 different kind of problems. In our software we instantiate the class boost::recursive_mutex::scoped_lock (instance of the template unique_lock), and one problem seems that the class boost::recursive_mutex doesn't implement the function unlock_upgrade_and_lock. I'm compiling the code settings the define BOOST_THREAD_WIN32, I don't know if there are others defines to be specified. Follow the VS 9.0 output (with the compilation errors): ... 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(406) : warning C4661: 'boost::unique_lock<Mutex> &boost::unique_lock<Mutex>::operator =(boost::upgrade_lock<Mutex> &)' : no suitable definition provided for explicit template instantiation request 1> with 1> [ 1> Mutex=boost::recursive_mutex 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(215) : see declaration of 'boost::unique_lock<Mutex>::operator =' 1> with 1> [ 1> Mutex=boost::recursive_mutex 1> ] 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(406) : warning C4661: 'boost::unique_lock<Mutex> &boost::unique_lock<Mutex>::operator =(boost::upgrade_lock<Mutex> &)' : no suitable definition provided for explicit template instantiation request 1> with 1> [ 1> Mutex=boost::mutex 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(215) : see declaration of 'boost::unique_lock<Mutex>::operator =' 1> with 1> [ 1> Mutex=boost::mutex 1> ] 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(406) : warning C4661: 'boost::unique_lock<Mutex> &boost::unique_lock<Mutex>::operator =(boost::upgrade_lock<Mutex> &)' : no suitable definition provided for explicit template instantiation request 1> with 1> [ 1> Mutex=boost::recursive_timed_mutex 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(215) : see declaration of 'boost::unique_lock<Mutex>::operator =' 1> with 1> [ 1> Mutex=boost::recursive_timed_mutex 1> ] 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(786) : error C2039: 'unlock_upgrade_and_lock' : is not a member of 'boost::recursive_mutex' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\win32\recursive_mutex.hpp(22) : see declaration of 'boost::recursive_mutex' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(780) : while compiling class template member function 'boost::unique_lock<Mutex>::unique_lock(boost::detail::thread_move_t<T>)' 1> with 1> [ 1> Mutex=boost::recursive_mutex, 1> T=boost::upgrade_lock<boost::recursive_mutex> 1> ] 1> d:\masterfinancedevl\admindevl\devl\src\include\mfcoreutility\mutexwrapper.h(114) : see reference to class template instantiation 'boost::unique_lock<Mutex>' being compiled 1> with 1> [ 1> Mutex=boost::recursive_mutex 1> ] 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(786) : error C2039: 'unlock_upgrade_and_lock' : is not a member of 'boost::mutex' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\win32\mutex.hpp(22) : see declaration of 'boost::mutex' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(780) : while compiling class template member function 'boost::unique_lock<Mutex>::unique_lock(boost::detail::thread_move_t<T>)' 1> with 1> [ 1> Mutex=boost::mutex, 1> T=boost::upgrade_lock<boost::mutex> 1> ] 1> d:\masterfinancedevl\admindevl\devl\src\include\mfcoreutility\mutexwrapper.h(129) : see reference to class template instantiation 'boost::unique_lock<Mutex>' being compiled 1> with 1> [ 1> Mutex=boost::mutex 1> ] 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(786) : error C2039: 'unlock_upgrade_and_lock' : is not a member of 'boost::recursive_timed_mutex' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\win32\recursive_mutex.hpp(42) : see declaration of 'boost::recursive_timed_mutex' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(780) : while compiling class template member function 'boost::unique_lock<Mutex>::unique_lock(boost::detail::thread_move_t<T>)' 1> with 1> [ 1> Mutex=boost::recursive_timed_mutex, 1> T=boost::upgrade_lock<boost::recursive_timed_mutex> 1> ] 1> d:\masterfinancedevl\admindevl\devl\src\include\mfcoreutility\mutexwrapper.h(144) : see reference to class template instantiation 'boost::unique_lock<Mutex>' being compiled 1> with 1> [ 1> Mutex=boost::recursive_timed_mutex 1> ] 1>d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\win32\basic_recursive_mutex.hpp(64) : error C2679: binary '+' : no operator found which takes a right-hand operand of type 'const boost::xtime' (or there is no acceptable conversion) 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\date_time\posix_time\date_duration_operators.hpp(31): could be 'boost::posix_time::ptime boost::posix_time::operator +(const boost::posix_time::ptime &,const boost::gregorian::months &)' [found using argument-dependent lookup] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\date_time\date_duration_types.hpp(132): or 'boost::gregorian::date boost::date_time::months_duration<base_config>::operator +(const boost::gregorian::date &,const boost::date_time::months_duration<base_config> &)' [found using argument-dependent lookup] 1> with 1> [ 1> base_config=boost::gregorian::greg_durations_config 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\date_time\posix_time\date_duration_operators.hpp(75): or 'boost::posix_time::ptime boost::posix_time::operator +(const boost::posix_time::ptime &,const boost::gregorian::years &)' [found using argument-dependent lookup] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\date_time\date_duration_types.hpp(244): or 'boost::gregorian::date boost::date_time::years_duration<base_config>::operator +(const boost::gregorian::date &,const boost::date_time::years_duration<base_config> &)' [found using argument-dependent lookup] 1> with 1> [ 1> base_config=boost::gregorian::greg_durations_config 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\date_time\time.hpp(138): or 'boost::posix_time::ptime boost::date_time::base_time<T,time_system>::operator +(const boost::date_time::date_duration<duration_rep_traits> &) const' 1> with 1> [ 1> T=boost::posix_time::ptime, 1> time_system=boost::posix_time::posix_time_system, 1> duration_rep_traits=boost::gregorian::date_duration_rep 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\date_time\time.hpp(158): or 'boost::posix_time::ptime boost::date_time::base_time<T,time_system>::operator +(const boost::posix_time::time_duration &) const' 1> with 1> [ 1> T=boost::posix_time::ptime, 1> time_system=boost::posix_time::posix_time_system 1> ] 1> while trying to match the argument list '(boost::system_time, const boost::xtime)' 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(364) : see reference to function template instantiation 'bool boost::detail::basic_recursive_mutex_impl<underlying_mutex_type>::timed_lock<boost::xtime>(const Duration &)' being compiled 1> with 1> [ 1> underlying_mutex_type=boost::detail::basic_timed_mutex, 1> Duration=boost::xtime 1> ] 1> d:\masterfinancedevl\admindevl\devl\ext70\inc\boost7.1\boost\thread\locks.hpp(363) : while compiling class template member function 'bool boost::unique_lock<Mutex>::timed_lock(const boost::xtime &)' 1> with 1> [ 1> Mutex=boost::recursive_mutex 1> ] ... Have you any suggestion on how to solve our compilation problem? thanks in advance best regards Matteo -- View this message in context: http://www.nabble.com/Compilation-errors-upgrading-boost-from-1.34-to-1.37-%... Sent from the Boost - Dev mailing list archive at Nabble.com.
participants (1)
-
mborghi2