/* * Copyright (c) 2012 Glen Joseph Fernandes * glenfe at live dot com * * Distributed under the Boost Software License, * Version 1.0. (See accompanying file LICENSE_1_0.txt * or copy at http://boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP #define BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP #include #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #include #endif #include namespace boost { namespace detail { template struct array_base { typedef typename boost::remove_cv::type type; }; template struct array_base { typedef typename array_base::type type; }; template struct array_size { enum { size = 1 }; }; template struct array_size { enum { size = N * array_size::size }; }; template struct array_inner { }; template struct array_inner { typedef T type; }; template struct array_inner { typedef T type; }; #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) template struct array_list { }; template struct array_list { typedef std::initializer_list type; }; #endif } } #endif