Qt and libraries using slots or signals names

C++ Qt

Including the Boost Spirit header file <boost/spirit/include/qi.hpp>, you will get a compiler error like the following (compiled with gcc 4.4.3, Qt 4.6.2, boost 1.40).

/usr/include/boost/spirit/home/qi/operator/permutation.hpp:58: error: 
declaration does not declare anything

In the file permutation.hpp we find the following declaration.

boost::array<
    bool
    , fusion::result_of::size<typename Component::elements_type>::value
    >
    slots;
The name slots is eaten by the Qt preprocessor, so that the correct array declaration causes the compiler error. To solve this problem you have to add CONFIG+=no_keywords to your Qt project settings. This tells Qt not to define the moc keywords signals and slots but use the macros Q_SIGNALS and Q_SLOTS instead. So you have to replace all the signals/slots keywords with these macros.

Diskussion

Sende ein Kommentar, Frage, Korrekturen, Beschimpfungen...

Name:

Nachricht:


doxapp c++
Zur Übersicht
home