#include <forward.hpp>
|
| decltype(auto) | operands () const noexcept |
| |
| decltype(auto) | parameters () const noexcept |
| |
| decltype(auto) | first () const noexcept |
| |
| decltype(auto) | second () const noexcept |
| |
| | generic_expr (OperandTypes... args) noexcept |
| |
| void | traverse () const |
| |
| ResultType | eval () const |
| |
| ResultType | eval (eval_context const &ctx) const |
| |
| template<typename T = ResultType, typename = typename std::enable_if<std::is_same<T, ResultType>::value && mgcpp::has_shape<T>::value>::type> |
| T::shape_type | shape (eval_context const &ctx) const |
| |
|
| std::tuple< OperandTypes... > | exprs |
| |
|
| static constexpr bool | is_terminal = sizeof...(OperandTypes) == NParameters |
| |
| static constexpr size_t | n_parameters = NParameters |
| |
| static constexpr size_t | tag = Tag |
| |
◆ result_expr_type
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
template<typename T >
◆ result_type
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
◆ this_type
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| using mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::this_type = generic_expr<TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes...> |
◆ generic_expr()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
◆ eval() [1/2]
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| ResultType mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::eval |
( |
| ) |
const |
|
inline |
Evaluate this expression with an empty default context.
◆ eval() [2/2]
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
Evaluate this expression with context.
- Parameters
-
| ctx | the context the expression is evaluated in. |
◆ first()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| decltype(auto) mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::first |
( |
| ) |
const |
|
inlinenoexcept |
◆ operands()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| decltype(auto) mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::operands |
( |
| ) |
const |
|
inlinenoexcept |
◆ parameters()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| decltype(auto) mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::parameters |
( |
| ) |
const |
|
inlinenoexcept |
◆ second()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| decltype(auto) mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::second |
( |
| ) |
const |
|
inlinenoexcept |
◆ shape()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
template<typename T = ResultType, typename = typename std::enable_if<std::is_same<T, ResultType>::value && mgcpp::has_shape<T>::value>::type>
Get the shape of this expression without computing the whole expression.
◆ traverse()
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| void mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::traverse |
( |
| ) |
const |
|
inline |
◆ exprs
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| std::tuple<OperandTypes...> mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::exprs |
◆ is_terminal
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| constexpr bool mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::is_terminal = sizeof...(OperandTypes) == NParameters |
|
static |
◆ n_parameters
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| constexpr size_t mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::n_parameters = NParameters |
|
static |
◆ tag
template<typename TagType, size_t Tag, template< typename > class ResultExprType, typename ResultType, size_t NParameters, typename... OperandTypes>
| constexpr size_t mgcpp::generic_expr< TagType, Tag, ResultExprType, ResultType, NParameters, OperandTypes >::tag = Tag |
|
static |
The documentation for this struct was generated from the following files: