Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:53:12

0001 
0002 //  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
0003 //  Use, modification and distribution are subject to the Boost Software License,
0004 //  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0005 //  http://www.boost.org/LICENSE_1_0.txt).
0006 //
0007 //  See http://www.boost.org/libs/type_traits for most recent version including documentation.
0008 
0009 #ifndef BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
0010 #define BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
0011 
0012 #include <boost/config.hpp>
0013 #include <boost/detail/workaround.hpp>
0014 #include <cstddef> // size_t
0015 
0016 namespace boost {
0017 
0018 template <class T> struct remove_extent{ typedef T type; };
0019 
0020 #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
0021 template <typename T, std::size_t N> struct remove_extent<T[N]> { typedef T type; };
0022 template <typename T, std::size_t N> struct remove_extent<T const[N]> { typedef T const type; };
0023 template <typename T, std::size_t N> struct remove_extent<T volatile [N]> { typedef T volatile type; };
0024 template <typename T, std::size_t N> struct remove_extent<T const volatile [N]> { typedef T const volatile type; };
0025 #if !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
0026 template <typename T> struct remove_extent<T[]> { typedef T type; };
0027 template <typename T> struct remove_extent<T const[]> { typedef T const type; };
0028 template <typename T> struct remove_extent<T volatile[]> { typedef T volatile type; };
0029 template <typename T> struct remove_extent<T const volatile[]> { typedef T const volatile type; };
0030 #endif
0031 #endif
0032 
0033 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
0034 
0035    template <class T> using remove_extent_t = typename remove_extent<T>::type;
0036 
0037 #endif
0038 
0039 } // namespace boost
0040 
0041 #endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED