mirror of
https://github.com/yuzu-emu/ext-boost.git
synced 2024-12-23 12:45:30 +00:00
93 lines
3.6 KiB
C++
93 lines
3.6 KiB
C++
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// (C) Copyright Pablo Halpern 2009. Distributed under the Boost
|
||
|
// Software License, Version 1.0. (See accompanying file
|
||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||
|
//
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// (C) Copyright Ion Gaztanaga 2011-2014. Distributed under the Boost
|
||
|
// Software License, Version 1.0. (See accompanying file
|
||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||
|
//
|
||
|
// See http://www.boost.org/libs/intrusive for documentation.
|
||
|
//
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef BOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
|
||
|
#define BOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
|
||
|
|
||
|
#if defined(_MSC_VER)
|
||
|
# pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <boost/intrusive/detail/workaround.hpp>
|
||
|
#include <boost/intrusive/detail/mpl.hpp>
|
||
|
#include <boost/intrusive/detail/preprocessor.hpp>
|
||
|
#include <boost/preprocessor/iteration/iterate.hpp>
|
||
|
|
||
|
namespace boost {
|
||
|
namespace intrusive {
|
||
|
namespace detail {
|
||
|
|
||
|
template <typename T>
|
||
|
inline T* addressof(T& obj)
|
||
|
{
|
||
|
return static_cast<T*>
|
||
|
(static_cast<void*>
|
||
|
(const_cast<char*>
|
||
|
(&reinterpret_cast<const char&>(obj))
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
template <typename T>
|
||
|
struct LowPriorityConversion
|
||
|
{
|
||
|
// Convertible from T with user-defined-conversion rank.
|
||
|
LowPriorityConversion(const T&) { }
|
||
|
};
|
||
|
|
||
|
}}} //namespace boost::intrusive::detail
|
||
|
|
||
|
#include <boost/intrusive/detail/has_member_function_callable_with.hpp>
|
||
|
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME pointer_to
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace boost { namespace intrusive { namespace detail {
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}}
|
||
|
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 1, <boost/intrusive/detail/has_member_function_callable_with.hpp>))
|
||
|
#include BOOST_PP_ITERATE()
|
||
|
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME static_cast_from
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace boost { namespace intrusive { namespace detail {
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}}
|
||
|
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 1, <boost/intrusive/detail/has_member_function_callable_with.hpp>))
|
||
|
#include BOOST_PP_ITERATE()
|
||
|
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME const_cast_from
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace boost { namespace intrusive { namespace detail {
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}}
|
||
|
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 1, <boost/intrusive/detail/has_member_function_callable_with.hpp>))
|
||
|
#include BOOST_PP_ITERATE()
|
||
|
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME dynamic_cast_from
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN namespace boost { namespace intrusive { namespace detail {
|
||
|
#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}}
|
||
|
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 1, <boost/intrusive/detail/has_member_function_callable_with.hpp>))
|
||
|
#include BOOST_PP_ITERATE()
|
||
|
|
||
|
namespace boost {
|
||
|
namespace intrusive {
|
||
|
namespace detail {
|
||
|
|
||
|
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(element_type)
|
||
|
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type)
|
||
|
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference)
|
||
|
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(value_traits_ptr)
|
||
|
|
||
|
} //namespace detail {
|
||
|
} //namespace intrusive {
|
||
|
} //namespace boost {
|
||
|
|
||
|
#endif // ! defined(BOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP)
|