Hello,<div><br></div><div>I think there might be a conflict between the 0MQ C++ library and the Qt4 C++ GUI libraries. I am using Qt's  latest LGPL SDK (qtsdk-2009.01). The following simple program fails to compile with g++ 4.1.2:</div>
<div><br></div><div><div>#include <QtGui/QApplication></div><div>#include <zmq.hpp></div><div>int main(int argc, char *argv[])</div><div>{</div><div>    QApplication a(argc, argv);<br></div><div>    return a.exec();<br>
</div><div>}</div><div><br></div><div>The compiler returns the following error:</div><div><br></div><div><div>g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qtsdk-2009.01/qt/mkspecs/linux-g++-64 -I. -I/opt/qtsdk-2009.01/qt/include/QtCore -I/opt/qtsdk-2009.01/qt/include/QtGui -I/opt/qtsdk-2009.01/qt/include -Idebug -I. -o debug/main.o main.cpp</div>
<div>/usr/local/include/zmq/poller.hpp: In member function ‘bool zmq::poller_t<T>::process_event(zmq::i_pollable*, zmq::event_t)’:</div><div>/usr/local/include/zmq/poller.hpp:268: error: expected unqualified-id before ‘protected’</div>
<div>/usr/local/include/zmq/poller.hpp:269: error: expected primary-expression before ‘protected’</div><div>/usr/local/include/zmq/poller.hpp:269: error: expected `)' before ‘protected’</div><div>/usr/local/include/zmq/poller.hpp:269: error: expected `)' before ‘;’ token</div>
<div>/usr/local/include/zmq/poller.hpp:276: error: expected primary-expression before ‘protected’</div><div>/usr/local/include/zmq/poller.hpp:276: error: expected `)' before ‘protected’</div><div>make[1]: *** [debug/main.o] Error 1</div>
</div></div><div><br></div><div><br></div><div>HOWEVER, I can get the program to compile if I reverse the order of the include statements so that it reads:</div><div><div><br></div><div>#include <zmq.hpp><br></div></div>
<div><div>#include <QtGui/QApplication></div><div><div>int main(int argc, char *argv[])</div><div>{</div><div>    QApplication a(argc, argv);<br></div><div>    return a.exec();<br></div><div>}</div><div><br></div><div>
<br></div></div></div><div>The "offending" lines in the 0MQ poller.hpp file are:</div><div><br></div><div>/usr/local/include/zmq/poller.hpp:268: uint32_t signals = signaler.check ();<br></div><div><div>/usr/local/include/zmq/poller.hpp:269: assert (signals);</div>
<div><div>/usr/local/include/zmq/poller.hpp:276: if (signals & (1 << source_thread_id)) {</div><div><br></div><div>It might be a namespace collision with Qt's "signals/slots" mechanism. </div><div>
<br></div><div>Thanks,</div><div>Aamir</div><div><br></div><div><br></div></div><div><br></div></div>