error: invalid use of 'using ptr = class std::shared_ptr'

asked 2014-10-28 14:09:54 -0500

Is this a known bug in opencv2?

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

/usr/local/src/opentrack$ make
[  6%] Built target opentrack-qxt-mini
[  9%] Built target opentrack-pose-widget
[ 25%] Built target opentrack-api
[ 25%] Built target opentrack-version
[ 28%] Built target opentrack-spline-widget
[ 28%] Building CXX object CMakeFiles/opentrack.dir/facetracknoir/main.cpp.o
In file included from /usr/include/opencv2/core/core.hpp:4854:0,
                 from /usr/local/src/opentrack/opentrack/tracker.h:6,
                 from /usr/local/src/opentrack/facetracknoir/ui.h:52,
                 from /usr/local/src/opentrack/facetracknoir/main.cpp:1:
/usr/include/opencv2/core/operations.hpp: In member function 'void cv::Algorithm::set(const char*, const cv::Ptr<_Tp2>&)':
/usr/include/opencv2/core/operations.hpp:3978:38: error: invalid use of 'using ptr = class std::shared_ptr<cv::algorithm>'
     Ptr<algorithm> algo_ptr = value. template ptr<cv::algorithm>();
                                      ^
/usr/include/opencv2/core/operations.hpp: In member function 'void cv::Algorithm::setAlgorithm(const char*, const cv::Ptr<_Tp2>&)':
/usr/include/opencv2/core/operations.hpp:3994:38: error: invalid use of 'using ptr = class std::shared_ptr<cv::algorithm>'
     Ptr<algorithm> algo_ptr = value. template ptr<cv::algorithm>();
                                      ^
make[2]: *** [CMakeFiles/opentrack.dir/facetracknoir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/opentrack.dir/all] Error 2
make: *** [all] Error 2

edit retag flag offensive close merge delete

Comments

You mean you are building some code of yours on Ubuntu? i.e. You're having a build error?

Doombot gravatar imageDoombot ( 2014-10-28 14:13:57 -0500 )edit

There's an identifier clash between globally-defined "template<...> using ptr" and opencv in-namespace-in-function usage of the identifier. Since couldn't remove inclusion of either of the headers, renamed opentrack identifier. Is there a more proper solution?

sthalik gravatar imagesthalik ( 2014-10-28 22:44:14 -0500 )edit