STRUCT TEMPLATE VA(3)

NAME
boost::proto::result_of::value - A metafunction that returns the type of the value of a terminal Proto expression.

SYNOPSIS

// In header: <boost/proto/traits.hpp>
template<typename Expr>
struct value {
  // types
  typedef typename Expr::proto_child0 value_type;
  typedef see-below type;
};

DESCRIPTION

  value public types

    1. typedef typename Expr::proto_child0 value_type;

    The raw type of the value as it is stored within Expr. This may be a value or a reference.

    2. typedef see-below type;

    If Expr is not a reference type, type is computed as follows:

        &#8226; T const(&)[N] becomes T[N]

        &#8226; T[N] becomes T[N]

        &#8226; T(&)[N] becomes T[N]

        &#8226; R(&)(A...) becomes R(&)(A...)

        &#8226; T const & becomes T

        &#8226; T & becomes T

        &#8226; T becomes T

        If Expr is a non-const reference type, type is computed as follows:

            &#8226; T const(&)[N] becomes T const(&)[N]

            &#8226; T[N] becomes T(&)[N]

            &#8226; T(&)[N] becomes T(&)[N]

            &#8226; R(&)(A...) becomes R(&)(A...)

            &#8226; T const & becomes T const &

            &#8226; T & becomes T &

            &#8226; T becomes T &

            If Expr is a const reference type, type is computed as follows:

                &#8226; T const(&)[N] becomes T const(&)[N]

                &#8226; T[N] becomes T const(&)[N]

                &#8226; T(&)[N] becomes T(&)[N]

                &#8226; R(&)(A...) becomes R(&)(A...)

                &#8226; T const & becomes T const &

                &#8226; T & becomes T &

                &#8226; T becomes T const &