blob: c9169aba0c6bf79dcefac357ca33ffb7a610c424 [file] [log] [blame]
/*==============================================================================
Copyright (c) 2005-2010 Joel de Guzman
Copyright (c) 2010 Thomas Heller
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)
==============================================================================*/
template <typename F, typename A0>
struct function<F, A0>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0
>
{};
template <typename F, typename A0 , typename A1>
struct function<F, A0 , A1>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1
>
{};
template <typename F, typename A0 , typename A1 , typename A2>
struct function<F, A0 , A1 , A2>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3>
struct function<F, A0 , A1 , A2 , A3>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
struct function<F, A0 , A1 , A2 , A3 , A4>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18
>
{};
template <typename F, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9 , typename A10 , typename A11 , typename A12 , typename A13 , typename A14 , typename A15 , typename A16 , typename A17 , typename A18 , typename A19>
struct function<F, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19>
: proto::result_of::make_expr<
proto::tag::function
, phoenix_domain
, F
, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19
>
{};