Chris@102: ///////////////////////////////////////////////////////////////////////////// Chris@102: // Chris@102: // (C) Copyright Ion Gaztanaga 2006-2014 Chris@102: // Chris@102: // Distributed under the Boost Software License, Version 1.0. Chris@102: // (See accompanying file LICENSE_1_0.txt or copy at Chris@102: // http://www.boost.org/LICENSE_1_0.txt) Chris@102: // Chris@102: // See http://www.boost.org/libs/intrusive for documentation. Chris@102: // Chris@102: ///////////////////////////////////////////////////////////////////////////// Chris@102: Chris@102: #ifndef BOOST_INTRUSIVE_DETAIL_UNCAST_HPP Chris@102: #define BOOST_INTRUSIVE_DETAIL_UNCAST_HPP Chris@102: Chris@102: #ifndef BOOST_CONFIG_HPP Chris@102: # include Chris@102: #endif Chris@102: Chris@102: #if defined(BOOST_HAS_PRAGMA_ONCE) Chris@102: # pragma once Chris@102: #endif Chris@102: Chris@102: #include Chris@102: #include Chris@102: #include Chris@102: Chris@102: namespace boost { Chris@102: namespace intrusive { Chris@102: namespace detail { Chris@102: Chris@102: template Chris@102: struct uncast_types Chris@102: { Chris@102: typedef typename pointer_traits::element_type element_type; Chris@102: typedef typename remove_const::type non_const_type; Chris@102: typedef typename pointer_traits:: Chris@102: template rebind_pointer::type non_const_pointer; Chris@102: typedef pointer_traits non_const_traits; Chris@102: }; Chris@102: Chris@102: template Chris@102: static typename uncast_types::non_const_pointer Chris@102: uncast(const ConstNodePtr & ptr) Chris@102: { Chris@102: return uncast_types::non_const_traits::const_cast_from(ptr); Chris@102: } Chris@102: Chris@102: } //namespace detail { Chris@102: } //namespace intrusive Chris@102: } //namespace boost Chris@102: Chris@102: #include Chris@102: Chris@102: #endif //BOOST_INTRUSIVE_DETAIL_UTILITIES_HPP