Boost logo

Boost :

Subject: [boost] Compilation errors upgrading boost from 1.34 to 1.37 (Windows)
From: mborghi2 (mborghi_at_[hidden])
Date: 2009-01-22 10:22:11


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-%28Windows%29-tp21606259p21606259.html
Sent from the Boost - Dev mailing list archive at Nabble.com.

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk