Chris@16: Chris@16: #ifndef BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED Chris@16: #define BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED Chris@16: Chris@16: // Copyright Aleksey Gurtovoy 2003-2004 Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: // Chris@16: // See http://www.boost.org/libs/mpl for documentation. Chris@16: Chris@101: // $Id$ Chris@101: // $Date$ Chris@101: // $Revision$ Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: Chris@16: #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ Chris@16: || ( BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \ Chris@16: && !(defined(__STD_STRICT_ANSI) \ Chris@16: || defined(__STD_STRICT_ANSI_ERRORS)) ) Chris@16: Chris@16: # define BOOST_MPL_AUX_PTR_TO_REF(X) \ Chris@16: *BOOST_MPL_AUX_STATIC_CAST(X*, 0) \ Chris@16: /**/ Chris@16: Chris@16: #else Chris@16: Chris@16: # define BOOST_MPL_AUX_PTR_TO_REF(X) \ Chris@16: aux::ptr_to_ref(BOOST_MPL_AUX_STATIC_CAST(X*, 0)) \ Chris@16: /**/ Chris@16: Chris@16: #endif Chris@16: Chris@16: Chris@16: namespace boost { namespace mpl { namespace aux { Chris@16: Chris@16: template< typename T > static T const& ptr_to_ref(T*); Chris@16: Chris@16: }}} Chris@16: Chris@16: #endif // BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED