#768569 libboost-dev: get_pointer(std::shared_ptr<T> const&) not defined on clang

Package:
libboost-dev
Source:
boost-defaults
Description:
Boost C++ Libraries development files (default version)
Submitter:
Olaf van der Spek
Date:
2014-11-08 13:15:06 UTC
Severity:
normal
#768569#5
Date:
2014-11-08 13:12:02 UTC
From:
To:
Hi,

boost::get_pointer(std::shared_ptr<T> const&) appears to be undefined on clang:

$ g++ c.cpp -std=c++11


$ clang c.cpp -std=c++11
c.cpp:7:2: error: no matching function for call to 'get_pointer'
        boost::get_pointer(p);
        ^~~~~~~~~~~~~~~~~~
/usr/include/boost/ref.hpp:182:29: note: candidate template ignored: could not match 'reference_wrapper' against 'shared_ptr'
template<class T> inline T* get_pointer( reference_wrapper<T> const & r )
                            ^
/usr/include/boost/get_pointer.hpp:20:23: note: candidate template ignored: could not match 'T *' against 'std::shared_ptr<int>'
template<class T> T * get_pointer(T * p)
                      ^
/usr/include/boost/get_pointer.hpp:27:23: note: candidate template ignored: could not match 'auto_ptr' against 'shared_ptr'
template<class T> T * get_pointer(std::auto_ptr<T> const& p)
                      ^
1 error generated.


$ cat c.cpp
#include <boost/bind.hpp>
#include <memory>

int main()
{
        std::shared_ptr<int> p;
        boost::get_pointer(p);
        return 0;
}