Hi Ales, The IOHandle conversion comes from this method on Socket:
virtual operator const IOHandle&() const = 0; I've been having problems with this type of thing trying to get Qpid building XL C++ 11 too, so I'm not sure you'd be in much better shape with an updated compiler :-( Try putting a cast to const IOHandle& - let us know how that goes. -Steve > -----Original Message----- > From: Aleš Trček [mailto:[email protected]] > Sent: Monday, May 27, 2013 8:09 PM > To: [email protected] > Subject: Building qpid C++ broker on AIX > > Hi all, > > Since I obviously won't succeed with this so easily, I'm opening a thread on > the subject. Many thanks to all who can help me. > > System with AIX 5.3 / xlC 9.0 (yeah old as sh*t, but I can't do anything about > that soon) and Boost 1.34, building qpidc-0.20. > Anyway, I managed to go over some obstacles so far, but currently I'm stuck > with the following error(s): > [ 20%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/posix/AsynchIO.o > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line > 96.5: 1540-0218 (S) The call does not match any parameter list for > "DispatchHandle::DispatchHandle". > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/DispatchHandle.h", line > 88.24: 1540-1283 (I) "qpid::sys::DispatchHandle::DispatchHandle(const > qpid::sys::IOHandle &, Callback, Callback, Callback)" is not a viable > candidate. > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line > 96.12: 1540-0256 (I) A parameter of type "const qpid::sys::IOHandle &" > cannot be initialized with an expression of type "const qpid::sys::Socket". > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line > 168.5: 1540-0218 (S) The call does not match any parameter list for > "DispatchHandle::DispatchHandle". > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/DispatchHandle.h", line > 88.24: 1540-1283 (I) "qpid::sys::DispatchHandle::DispatchHandle(const > qpid::sys::IOHandle &, Callback, Callback, Callback)" is not a viable > candidate. > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line > 168.20: 1540-0256 (I) A parameter of type "const qpid::sys::IOHandle &" > cannot be initialized with an expression of type "const qpid::sys::Socket". > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line > 306.5: 1540-0218 (S) The call does not match any parameter list for > "DispatchHandle::DispatchHandle". > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/DispatchHandle.h", line > 88.24: 1540-1283 (I) "qpid::sys::DispatchHandle::DispatchHandle(const > qpid::sys::IOHandle &, Callback, Callback, Callback)" is not a viable > candidate. > "/achinst/atk/qpid_build/qpidc-0.20/src/qpid/sys/posix/AsynchIO.cpp", line > 306.20: 1540-0256 (I) A parameter of type "const qpid::sys::IOHandle &" > cannot be initialized with an expression of type "const qpid::sys::Socket". > > So, DispatchHandle has a constructor: > QPID_COMMON_EXTERN DispatchHandle(const IOHandle& h, Callback rCb, > Callback wCb, Callback dCb); > > which takes IOHandle& as the first parameter, however in AsynchIO, the > constructor is called with the qpid::sys::Socket e.g: > AsynchAcceptor::AsynchAcceptor(const Socket& s, AsynchAcceptor::Callback > callback) : > acceptedCallback(callback), > handle(s, boost::bind(&AsynchAcceptor::readable, this, _1), 0, 0), > socket(s) > > (Member "handle" is of type DispatchHandle.) > > The thing is, IOHandle and Socket are totally unrelated. For this to ever > work, > Socket would need to extend IOHandle (or one of its derived classes). So the > question is, how does this compile anywhere? :) > > Regards, > Ales --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
