Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

Struct template value

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:

    • T const(&)[N] becomes T[N]

    • T[N] becomes T[N]

    • T(&)[N] becomes T[N]

    • R(&)(A...) becomes R(&)(A...)

    • T const & becomes T

    • T & becomes T

    • T becomes T

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

    • T const(&)[N] becomes T const(&)[N]

    • T[N] becomes T(&)[N]

    • T(&)[N] becomes T(&)[N]

    • R(&)(A...) becomes R(&)(A...)

    • T const & becomes T const &

    • T & becomes T &

    • T becomes T &

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

    • T const(&)[N] becomes T const(&)[N]

    • T[N] becomes T const(&)[N]

    • T(&)[N] becomes T(&)[N]

    • R(&)(A...) becomes R(&)(A...)

    • T const & becomes T const &

    • T & becomes T &

    • T becomes T const &


PrevUpHomeNext