]> git.lyx.org Git - lyx.git/blob - boost/boost/get_pointer.hpp
Cmake build: Omit files with names not starting with aplha character.
[lyx.git] / boost / boost / get_pointer.hpp
1 // Copyright Peter Dimov and David Abrahams 2002.
2 // Distributed under the Boost Software License, Version 1.0. (See
3 // accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
5 #ifndef GET_POINTER_DWA20021219_HPP
6 #define GET_POINTER_DWA20021219_HPP
7
8 #include <boost/config.hpp>
9
10 // In order to avoid circular dependencies with Boost.TR1
11 // we make sure that our include of <memory> doesn't try to
12 // pull in the TR1 headers: that's why we use this header 
13 // rather than including <memory> directly:
14 #include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr
15
16 namespace boost { 
17
18 // get_pointer(p) extracts a ->* capable pointer from p
19
20 template<class T> T * get_pointer(T * p)
21 {
22     return p;
23 }
24
25 // get_pointer(shared_ptr<T> const & p) has been moved to shared_ptr.hpp
26
27 template<class T> T * get_pointer(std::auto_ptr<T> const& p)
28 {
29     return p.get();
30 }
31
32 #if !defined( BOOST_NO_CXX11_SMART_PTR )
33
34 template<class T> T * get_pointer( std::unique_ptr<T> const& p )
35 {
36     return p.get();
37 }
38
39 template<class T> T * get_pointer( std::shared_ptr<T> const& p )
40 {
41     return p.get();
42 }
43
44 #endif
45
46 } // namespace boost
47
48 #endif // GET_POINTER_DWA20021219_HPP