PDA

View Full Version : Armadillo and QtConcurrentMap issues



lineha1
21st February 2014, 16:14
Hi,
I'm using:
Qt-4.8.5 on Debian 6
gcc (Debian 4.4.5-8) 4.4.5

We just added Armadillo ( a C++ linear algebra library) http://arma.sourceforge.net/ to our code base.

It was working just fine until some calling code added #include <QtConcurrentMap>. Once that was added we get the compiler errors below. If the code does not have Armadillo it works fine with Qt concurrent map. If the code has Armadillo with other Qt includes it's fine. For some reason just adding #include <QtConcurrentMap> causes all the errors below. Any ideas? The traits.hpp file that has a lot of the build errors comes with Armadillo, so not a file I want to be modifying.

Thanks,
Ann-Marie

/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp: In instantiation of ‘const bool arma::is_arma_sparse_type<QMapData::<anonymous enum> >::value’:
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h:531: instantiated from here
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp:727: error: ‘QMapData::<anonymous enum>’ is/uses anonymous type
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp:727: error: trying to instantiate ‘template<class T> struct arma::is_mtSpOp’
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h:531: instantiated from here
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp:614: error: ‘QMapData::<anonymous enum>’ is/uses anonymous type
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp:614: error: trying to instantiate ‘template<class T> struct arma::is_subview_elem2’
In file included from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qtconcurrentresultstore.h:49,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qfutureinterface.h:52,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qfuture.h:49,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qtconcurrentthreadengine.h:50,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qtconcurrentiteratekernel.h:51,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qtconcurrentmapkernel.h:49,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qtconcurrentmap.h:49,
from /mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/QtConcurrentMap:1,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/template/FramesManagerImpl.cc:38,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/FramesManagerImpl.h:589,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/FramesManager.h:28,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/test/sampleapp/src/StereotacticFramesSliceDetect.cpp:21:
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h: In member function ‘T& QMap<Key, T>::operator[](const Key&)’:
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h:531: error: ‘arma::is_arma_type<QMapData::<anonymous enum> >::value’ is not a valid template argument for type ‘bool’ because it is a non-constant expression
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h:531: error: ‘arma::is_arma_type<QMapData::<anonymous enum> >::value’ is not a valid template argument for type ‘bool’ because it is a non-constant expression
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h: In member function ‘QMap<Key, T>::iterator QMap<Key, T>::insert(const Key&, const T&)’:
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h:564: error: ‘arma::is_arma_type<QMapData::<anonymous enum> >::value’ is not a valid template argument for type ‘bool’ because it is a non-constant expression
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h: In member function ‘QMap<Key, T>::iterator QMap<Key, T>::insertMulti(const Key&, const T&)’:
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qmap.h:600: error: ‘arma::is_arma_type<QMapData::<anonymous enum> >::value’ is not a valid template argument for type ‘bool’ because it is a non-constant expression
In file included from /mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo:112,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/LEMAccuracyParams.h:10,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/LocalizerErrorMetric.h:12,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/FramesManagerImpl.h:34,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/include/StereotacticFrames/FramesManager.h:28,
from StereotacticFrames/StereotacticFrames/StereotacticAlgorithm/test/sampleapp/src/StereotacticFramesSliceDetect.cpp:21:
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp: At global scope:
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp: In instantiation of ‘const bool arma::is_arma_type<QtConcurrent::<anonymous enum> >::value’:
/mnt/netapp/pg/external/archive/Trolltech/Qt-4.8.5/debian_5_0_AMD64/gcc_4_3_2/include/QtCore/qtconcurrentreducekernel.h:215: instantiated from here
/mnt/netapp/pg/external/archive/armadillo/armadillo-3.920.4/usr/include/armadillo_bits/traits.hpp:614: error: ‘QtConcurrent::<anonymous enum>’ is/uses anonymous type