75 template <
typename Tag,
typename... Ts>
104 template <
typename... Us>
115 template <
typename... Args>
128 template <
typename... Args>
137 template <
typename Tag,
typename... Ts>
138 struct ph_set<
expr<Tag, Ts...>> : ph_set<Ts...> {};
141 template <
typename Tag,
typename... Ts>
142 constexpr bool is_lazy_impl<expr<Tag, Ts...>> =
true;
145 template <
typename Tag,
typename... Ts>
146 constexpr bool force_copy_in_expr_impl<expr<Tag, Ts...>> =
true;
Provides some utility functions and type traits for the CLEF library.
Single node of the expression tree.
expr & operator=(expr const &)=delete
Copy assignment operator is deleted.
expr(expr &&ex) noexcept
Move constructor simply moves the child nodes from the source expression.
std::tuple< Ts... > childs_t
Tuple type for storing the child nodes.
auto operator[](Args &&...args) const
Subscript operator.
expr & operator=(expr &&)=default
Default move assignment operator.
expr(expr const &)=default
Default copy constructor.
expr(Tag, Us &&...us)
Construct an expression node with a given tag and child nodes.
childs_t childs
Child nodes of the current expression node.
auto operator()(Args &&...args) const
Function call operator.
Lazy binary expression for nda::ArrayOrScalar types.