Update of /cvsroot/boost/boost/boost/xpressive/proto/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv12136/proto/detail

Added Files:
        funop.hpp 
Log Message:
make it less expensive to raise BOOST_PROTO_MAX_ARITY

--- NEW FILE: funop.hpp ---
///////////////////////////////////////////////////////////////////////////////
/// \file funop.hpp
/// Contains definition of funop[n]\<\> class template.
//
//  Copyright 2004 Eric Niebler. Distributed under the Boost
//  Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

#ifndef BOOST_PP_IS_ITERATING
#error Do not include this file directly
#endif

template<typename Expr BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), 
typename A)>
struct BOOST_PP_CAT(funop, BOOST_PP_ITERATION())
{
    typedef expr<
        tag::function
      , BOOST_PP_CAT(args, BOOST_PP_INC(BOOST_PP_ITERATION()))<
            ref<Expr>
            BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(
                BOOST_PP_ITERATION()
              , typename meta::as_expr_ref<A
              , >::type BOOST_PP_INTERCEPT
            )
        >
    > type;

    static type const call(
        Expr const &expr
        BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(BOOST_PP_ITERATION(), A, const &a)
    )
    {
        type that = {{expr} BOOST_PP_ENUM_TRAILING(BOOST_PP_ITERATION(), 
BOOST_PROTO_AS_OP, _)};
        return that;
    }
};


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to