annotate DEPENDENCIES/generic/include/boost/type_erasure/detail/normalize_deduced.hpp @ 24:e1b89e300e76

Add constant-q-cpp
author Chris Cannam
date Tue, 05 Aug 2014 17:19:56 +0100
parents 2665513ce2d3
children c530137014c0
rev   line source
Chris@16 1 // Boost.TypeErasure library
Chris@16 2 //
Chris@16 3 // Copyright 2011 Steven Watanabe
Chris@16 4 //
Chris@16 5 // Distributed under the Boost Software License Version 1.0. (See
Chris@16 6 // accompanying file LICENSE_1_0.txt or copy at
Chris@16 7 // http://www.boost.org/LICENSE_1_0.txt)
Chris@16 8 //
Chris@16 9 // $Id: normalize_deduced.hpp 78443 2012-05-13 00:17:07Z steven_watanabe $
Chris@16 10
Chris@16 11 #if !defined(BOOST_PP_IS_ITERATING)
Chris@16 12
Chris@16 13 #ifndef BOOST_TYPE_ERASURE_DETAIL_NORMALIZE_DEDUCED_HPP_INCLUDED
Chris@16 14 #define BOOST_TYPE_ERASURE_DETAIL_NORMALIZE_DEDUCED_HPP_INCLUDED
Chris@16 15
Chris@16 16 #include <boost/preprocessor/iteration/iterate.hpp>
Chris@16 17 #include <boost/preprocessor/repetition/enum.hpp>
Chris@16 18 #include <boost/preprocessor/repetition/enum_params.hpp>
Chris@16 19
Chris@16 20 namespace boost {
Chris@16 21 namespace type_erasure {
Chris@16 22 namespace detail {
Chris@16 23
Chris@16 24 template<class M, class T>
Chris@16 25 struct normalize_deduced;
Chris@16 26 template<class M, class T>
Chris@16 27 struct normalize_placeholder;
Chris@16 28
Chris@16 29 #define BOOST_PP_FILENAME_1 <boost/type_erasure/detail/normalize_deduced.hpp>
Chris@16 30 #define BOOST_PP_ITERATION_LIMITS (1, BOOST_TYPE_ERASURE_MAX_ARITY)
Chris@16 31 #include BOOST_PP_ITERATE()
Chris@16 32
Chris@16 33 }
Chris@16 34 }
Chris@16 35 }
Chris@16 36
Chris@16 37 #endif
Chris@16 38
Chris@16 39 #else
Chris@16 40
Chris@16 41 #define N BOOST_PP_ITERATION()
Chris@16 42
Chris@16 43 #define BOOST_TYPE_ERASURE_NORMALIZE_PLACEHOLDER(z, n, data) \
Chris@16 44 typename ::boost::type_erasure::detail::normalize_placeholder< \
Chris@16 45 M, \
Chris@16 46 BOOST_PP_CAT(U, n) \
Chris@16 47 >::type
Chris@16 48
Chris@16 49 template<class M, template<BOOST_PP_ENUM_PARAMS(N, class T)> class T, BOOST_PP_ENUM_PARAMS(N, class U)>
Chris@16 50 struct normalize_deduced<M, T<BOOST_PP_ENUM_PARAMS(N, U)> >
Chris@16 51 {
Chris@16 52 typedef typename ::boost::type_erasure::deduced<
Chris@16 53 T<BOOST_PP_ENUM(N, BOOST_TYPE_ERASURE_NORMALIZE_PLACEHOLDER, ~)>
Chris@16 54 >::type type;
Chris@16 55 };
Chris@16 56
Chris@16 57 #undef BOOST_TYPE_ERASURE_NORMALIZE_PLACEHOLDER
Chris@16 58
Chris@16 59 #undef N
Chris@16 60
Chris@16 61 #endif