[ https://issues.apache.org/jira/browse/QPID-1424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Huston resolved QPID-1424. -------------------------------- Resolution: Fixed Assignee: Steve Huston Fixed - thanks, Cliff! Committed in svn revision 719133 > Compile error in C++ broker, SessionManager.cpp > ----------------------------------------------- > > Key: QPID-1424 > URL: https://issues.apache.org/jira/browse/QPID-1424 > Project: Qpid > Issue Type: Bug > Components: C++ Broker > Affects Versions: M4 > Environment: Windows, Visual Studio .NET 2005 (VC8) and 2008 (VC9) > Reporter: Steve Huston > Assignee: Steve Huston > Fix For: M4 > > Attachments: SessionManager.cpp.diff > > > In this method in cpp/src/qpid/broker/SessionManager.cpp there's a compile > error on Windows: > void SessionManager::eraseExpired() { > // Called with lock held. > if (!detached.empty()) { > Detached::iterator keep = std::lower_bound( > detached.begin(), detached.end(), now(), > boost::bind(std::less<AbsTime>(), > boost::bind(&SessionState::expiry, _1), _2)); > It doesn't like the boost::bind(&SessionState::expiry, _1): > C:\Program Files (x86)\boost\boost_1_35_0\boost/bind.hpp(279) : error C2664: > 'bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const' : cannot > convert parameter 2 from 'qpid::broker::SessionState' to 'const > qpid::sys::AbsTime &' > 1> with > 1> [ > 1> _Ty=qpid::sys::AbsTime > 1> ] > 1> Reason: cannot convert from 'qpid::broker::SessionState' to 'const > qpid::sys::AbsTime' > 1> No user-defined-conversion operator available that can perform this > conversion, or the operator cannot be called > 1> C:\Program Files > (x86)\boost\boost_1_35_0\boost/bind/bind_template.hpp(76) : see reference to > function template instantiation 'R boost::_bi::list2<A1,A2>::operator > ()<bool,F,boost::_bi::list2<const qpid::sys::AbsTime > &,qpid::broker::SessionState &>>(boost::_bi::type<T>,F &,A &,long)' being > compiled > 1> with > 1> [ > 1> R=bool, > 1> A1=boost::_bi::bind_t<const qpid::sys::AbsTime > &,boost::_mfi::dm<qpid::sys::AbsTime,qpid::broker::SessionState>,boost::_bi::list1<boost::arg<1>>>, > 1> A2=boost::arg<2>, > 1> F=std::less<qpid::sys::AbsTime>, > 1> T=bool, > 1> A=boost::_bi::list2<const qpid::sys::AbsTime > &,qpid::broker::SessionState &> > 1> ] > 1> C:\Program Files (x86)\Microsoft Visual Studio > 8\VC\include\xutility(314) : see reference to function template instantiation > 'bool boost::_bi::bind_t<R,F,L>::operator ()<_Ty2,_Ty1>(const A1 &,A2 &)' > being compiled > 1> with > 1> [ > 1> R=boost::_bi::unspecified, > 1> F=std::less<qpid::sys::AbsTime>, > 1> L=boost::_bi::list2<boost::_bi::bind_t<const qpid::sys::AbsTime > &,boost::_mfi::dm<qpid::sys::AbsTime,qpid::broker::SessionState>,boost::_bi::list1<boost::arg<1>>>,boost::arg<2>>, > 1> _Ty2=qpid::sys::AbsTime, > 1> _Ty1=qpid::broker::SessionState, > 1> A1=qpid::sys::AbsTime, > 1> A2=qpid::broker::SessionState > 1> ] > 1> C:\Program Files (x86)\Microsoft Visual Studio > 8\VC\include\algorithm(2304) : see reference to function template > instantiation 'bool std::_Debug_lt_pred<_Pr,T,_Ty>(_Pr,_Ty1 &,const _Ty2 > &,const wchar_t *,unsigned int)' being compiled > 1> with > 1> [ > 1> > _Pr=boost::_bi::bind_t<boost::_bi::unspecified,std::less<qpid::sys::AbsTime>,boost::_bi::list2<boost::_bi::bind_t<const > qpid::sys::AbsTime > &,boost::_mfi::dm<qpid::sys::AbsTime,qpid::broker::SessionState>,boost::_bi::list1<boost::arg<1>>>,boost::arg<2>>>, > 1> T=qpid::broker::SessionState, > 1> _Ty=qpid::sys::AbsTime, > 1> _Ty1=qpid::broker::SessionState, > 1> _Ty2=qpid::sys::AbsTime > 1> ] > 1> C:\Program Files (x86)\Microsoft Visual Studio > 8\VC\include\algorithm(2318) : see reference to function template > instantiation '_FwdIt > std::_Lower_bound<boost::void_ptr_iterator<VoidIter,T>,_Ty,__w64 > int,_Pr>(_FwdIt,_FwdIt,const _Ty &,_Pr,_Diff *)' being compiled > 1> with > 1> [ > 1> _FwdIt=boost::void_ptr_iterator<std::_Vector_iterator<void > *,std::allocator<void *>>,qpid::broker::SessionState>, > 1> VoidIter=std::_Vector_iterator<void *,std::allocator<void *>>, > 1> T=qpid::broker::SessionState, > 1> _Ty=qpid::sys::AbsTime, > 1> > _Pr=boost::_bi::bind_t<boost::_bi::unspecified,std::less<qpid::sys::AbsTime>,boost::_bi::list2<boost::_bi::bind_t<const > qpid::sys::AbsTime > &,boost::_mfi::dm<qpid::sys::AbsTime,qpid::broker::SessionState>,boost::_bi::list1<boost::arg<1>>>,boost::arg<2>>>, > 1> _Diff=__w64 int > 1> ] > 1> .\qpid\broker\SessionManager.cpp(91) : see reference to function > template instantiation '_FwdIt > std::lower_bound<boost::void_ptr_iterator<VoidIter,T>,qpid::sys::AbsTime,boost::_bi::bind_t<R,F,L>>(_FwdIt,_FwdIt,const > _Ty &,_Pr)' being compiled > 1> with > 1> [ > 1> _FwdIt=boost::void_ptr_iterator<std::_Vector_iterator<void > *,std::allocator<void *>>,qpid::broker::SessionState>, > 1> VoidIter=std::_Vector_iterator<void *,std::allocator<void *>>, > 1> T=qpid::broker::SessionState, > 1> R=boost::_bi::unspecified, > 1> F=std::less<qpid::sys::AbsTime>, > 1> L=boost::_bi::list2<boost::_bi::bind_t<const qpid::sys::AbsTime > &,boost::_mfi::dm<qpid::sys::AbsTime,qpid::broker::SessionState>,boost::_bi::list1<boost::arg<1>>>,boost::arg<2>>, > 1> _Ty=qpid::sys::AbsTime, > 1> > _Pr=boost::_bi::bind_t<boost::_bi::unspecified,std::less<qpid::sys::AbsTime>,boost::_bi::list2<boost::_bi::bind_t<const > qpid::sys::AbsTime > &,boost::_mfi::dm<qpid::sys::AbsTime,qpid::broker::SessionState>,boost::_bi::list1<boost::arg<1>>>,boost::arg<2>>> > 1> ] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.