From e446c6e05cd1933ffaa3e3bf946c0e453017ba08 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Fri, 7 Feb 2025 01:30:16 +0300 Subject: [PATCH] Added indirect_reference_t alias. --- include/boost/indirect_reference.hpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/include/boost/indirect_reference.hpp b/include/boost/indirect_reference.hpp index 9a8b73f..928b928 100644 --- a/include/boost/indirect_reference.hpp +++ b/include/boost/indirect_reference.hpp @@ -1,5 +1,5 @@ -#ifndef INDIRECT_REFERENCE_DWA200415_HPP -#define INDIRECT_REFERENCE_DWA200415_HPP +#ifndef BOOST_INDIRECT_REFERENCE_DWA200415_HPP +#define BOOST_INDIRECT_REFERENCE_DWA200415_HPP // // Copyright David Abrahams 2004. Use, modification and distribution is @@ -11,19 +11,19 @@ // http://www.boost.org/libs/iterator/doc/pointee.html // +#include + #include #include #include -#include - namespace boost { namespace detail { template< typename P > struct smart_ptr_reference { - using type = typename boost::pointee

::type&; + using type = boost::pointee_t< P >&; }; } // namespace detail @@ -31,13 +31,16 @@ struct smart_ptr_reference template< typename P > struct indirect_reference : std::conditional< - detail::is_incrementable

::value, - iterator_reference

, - detail::smart_ptr_reference

+ detail::is_incrementable< P >::value, + iterator_reference< P >, + detail::smart_ptr_reference< P > >::type { }; +template< typename P > +using indirect_reference_t = typename indirect_reference< P >::type; + } // namespace boost -#endif // INDIRECT_REFERENCE_DWA200415_HPP +#endif // BOOST_INDIRECT_REFERENCE_DWA200415_HPP