/usr/include/boost/phoenix/core
Edit: /usr/include/boost/phoenix/core/arity.hpp (2552B)
/*==============================================================================
Copyright (c) 2010 Thomas Heller
Copyright (c) 2010 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_PHOENIX_CORE_ARITY_HPP
#define BOOST_PHOENIX_CORE_ARITY_HPP
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace boost { namespace phoenix
{
/////////////////////////////////////////////////////////////////////////////
//
// Calculate the arity of an expression using proto transforms
//
/////////////////////////////////////////////////////////////////////////////
struct arity;
namespace result_of
{
template
struct arity
: mpl::int_<
evaluator::impl<
Expr const&
, vector2<
mpl::int_<0>
, boost::phoenix::arity
>&
, proto::empty_env
>::result_type::value
>
{};
}
struct arity
{
template
struct when
: proto::fold<
proto::_
, mpl::int_<0>
, proto::make
)
>
>()>
>
{};
};
template
struct arity::when
: proto::make()>
{};
template
struct arity::when
: proto::make()>
{};
template
struct arity::when
: proto::make()>
{};
}}
#endif