10 #include <boost/shared_ptr.hpp>
11 #include <boost/weak_ptr.hpp>
12 #include <type_traits>
38 struct UnwrapImpl<boost::shared_ptr<T> >
41 static T*
unwrap(boost::shared_ptr<T> v)
47 struct UnwrapImpl<boost::weak_ptr<T> >
50 static T*
unwrap(boost::weak_ptr<T> v)
52 return v.lock().get();
57 struct Unwrap :
public UnwrapImpl<typename std::remove_cv<typename std::remove_reference<T>::type>::type>
std::remove_cv< std::remove_reference< T >::type >::type type