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


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

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


// 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(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;


Terminal expression specialization of the reference expression template.

[Note] 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().