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


Function template make_expression



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

template<template< expr_kind, class > class ExprTemplate, expr_kind Kind, 
         typename... T> 
  constexpr auto make_expression(T &&... t);


Makes a new expression instantiated from the expression template ExprTemplate, of kind Kind, with the given values as its elements.

For each parameter P:

  • If P is an expression, P is moved into the result if P is an rvalue and captured by reference into the result otherwise.

  • Otherwise, P is wrapped in a terminal expression.

[Note] Note

make_expression() is only valid if the number of parameters passed is appropriate for Kind.