1 ///////////////////////////////////////////////////////////////////////////// 2 // 3 // (C) Copyright Ion Gaztanaga 2017-2017 4 // 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 // 9 // See http://www.boost.org/libs/move for documentation. 10 // 11 ///////////////////////////////////////////////////////////////////////////// 12 13 #ifndef BOOST_MOVE_DETAIL_TO_RAW_POINTER_HPP 14 #define BOOST_MOVE_DETAIL_TO_RAW_POINTER_HPP 15 16 #ifndef BOOST_CONFIG_HPP 17 # include <boost/config.hpp> 18 #endif 19 20 #if defined(BOOST_HAS_PRAGMA_ONCE) 21 # pragma once 22 #endif 23 24 #include <boost/move/detail/config_begin.hpp> 25 #include <boost/move/detail/workaround.hpp> 26 #include <boost/move/detail/pointer_element.hpp> 27 28 namespace boost { 29 namespace movelib { 30 31 template <class T> to_raw_pointer(T * p)32BOOST_MOVE_FORCEINLINE T* to_raw_pointer(T* p) 33 { return p; } 34 35 template <class Pointer> 36 BOOST_MOVE_FORCEINLINE typename boost::movelib::pointer_element<Pointer>::type* to_raw_pointer(const Pointer & p)37to_raw_pointer(const Pointer &p) 38 { return ::boost::movelib::to_raw_pointer(p.operator->()); } 39 40 } //namespace movelib 41 } //namespace boost 42 43 #include <boost/move/detail/config_end.hpp> 44 45 #endif //BOOST_MOVE_DETAIL_TO_RAW_POINTER_HPP 46