| Home | Libraries | People | FAQ | More

## Struct template expression<expr_kind::terminal, hana::tuple< T >>

boost::yap::expression<expr_kind::terminal, hana::tuple< T >>

## Synopsis

    // In header: <boost/yap/expression.hpp>

    template<typename T>
    struct expression<expr_kind::terminal, hana::tuple< T >> {
      // types
      typedef hana::tuple< T > tuple_type;

      // construct/copy/destruct
      expression();
      expression(T &&);
      expression(hana::tuple< T > const &);
      expression(hana::tuple< T > &&);

      // public member functions
      decltype(auto) constexpr value();

      // public data members
      static const expr_kind kind;
      tuple_type elements;
    };

## Description

Terminal expression specialization of the reference expression template.

| Note

Due to a limitation of Doxygen, the `value()` member and each of the operator overloads listed here is a stand-in for three member functions. For each function `f`, the listing here is:

    return_type f ();

However, there are actually three functions:

    return_type f () const &;
    return_type f () &;
    return_type f () &&;

### `expression` public construct/copy/destruct

1.     expression();

   Default constructor. Does nothing.

2.     expression(T && t);

   Forwards t into `elements`.

3.     expression(hana::tuple< T > const & rhs);

   Copies rhs into the only data mamber, `elements`.

4.     expression(hana::tuple< T > && rhs);

   Moves rhs into the only data mamber, `elements`.

### `expression` public member functions

1.     decltype(auto) constexpr value();

   A convenience member function that dispatches to the free function `value()`.