epoc32/include/stdapis/boost/mpl/aux_/arity_spec.hpp
branchSymbian2
changeset 2 2fe1408b6811
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/epoc32/include/stdapis/boost/mpl/aux_/arity_spec.hpp	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -0,0 +1,67 @@
     1.4 +
     1.5 +#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
     1.6 +#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
     1.7 +
     1.8 +// Copyright Aleksey Gurtovoy 2001-2004
     1.9 +//
    1.10 +// Distributed under the Boost Software License, Version 1.0. 
    1.11 +// (See accompanying file LICENSE_1_0.txt or copy at 
    1.12 +// http://www.boost.org/LICENSE_1_0.txt)
    1.13 +//
    1.14 +// See http://www.boost.org/libs/mpl for documentation.
    1.15 +
    1.16 +// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arity_spec.hpp,v $
    1.17 +// $Date: 2004/11/28 02:04:02 $
    1.18 +// $Revision: 1.7 $
    1.19 +
    1.20 +#include <boost/mpl/int.hpp>
    1.21 +#include <boost/mpl/limits/arity.hpp>
    1.22 +#include <boost/mpl/aux_/config/dtp.hpp>
    1.23 +#include <boost/mpl/aux_/preprocessor/params.hpp>
    1.24 +#include <boost/mpl/aux_/arity.hpp>
    1.25 +#include <boost/mpl/aux_/template_arity_fwd.hpp>
    1.26 +#include <boost/mpl/aux_/config/ttp.hpp>
    1.27 +#include <boost/mpl/aux_/config/lambda.hpp>
    1.28 +#include <boost/mpl/aux_/config/static_constant.hpp>
    1.29 +
    1.30 +#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
    1.31 +#   define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \
    1.32 +namespace aux { \
    1.33 +template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \
    1.34 +struct arity< \
    1.35 +      name< BOOST_MPL_PP_PARAMS(i,T) > \
    1.36 +    , N \
    1.37 +    > \
    1.38 +{ \
    1.39 +    BOOST_STATIC_CONSTANT(int \
    1.40 +        , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
    1.41 +        ); \
    1.42 +}; \
    1.43 +} \
    1.44 +/**/
    1.45 +#else
    1.46 +#   define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/
    1.47 +#endif
    1.48 +
    1.49 +#   define BOOST_MPL_AUX_ARITY_SPEC(i,name) \
    1.50 +    BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \
    1.51 +/**/
    1.52 +
    1.53 +
    1.54 +#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
    1.55 +    && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
    1.56 +#   define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \
    1.57 +namespace aux { \
    1.58 +template< BOOST_MPL_PP_PARAMS(i,typename T) > \
    1.59 +struct template_arity< name<BOOST_MPL_PP_PARAMS(i,T)> > \
    1.60 +    : int_<i> \
    1.61 +{ \
    1.62 +}; \
    1.63 +} \
    1.64 +/**/
    1.65 +#else
    1.66 +#   define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
    1.67 +#endif
    1.68 +
    1.69 +
    1.70 +#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED