42 template <
typename T,
typename RHS>
55 template <
typename T,
typename RHS>
70 template <
typename T,
typename RHS>
86 template <
typename Tag,
typename... Childs,
typename RHS>
92 template <
typename Tag,
typename... Childs,
typename RHS>
109 template <
typename T,
typename RHS,
int... Is>
111 static_assert(detail::all_different(Is...),
"Error in clef operator<<: Two of the placeholders on the LHS are the same");
116 template <
typename F,
typename RHS,
int... Is>
117 FORCEINLINE
void operator<<(
expr<tags::subscript, F, placeholder<Is>...> &&ex, RHS &&rhs) {
118 static_assert(detail::all_different(Is...),
"Error in clef operator<<: Two of the placeholders on the LHS are the same");
123 template <
typename F,
typename RHS,
int... Is>
124 FORCEINLINE
void operator<<(expr<tags::subscript, F, placeholder<Is>...> &ex, RHS &&rhs) {
125 static_assert(detail::all_different(Is...),
"Error in clef operator<<: Two of the placeholders on the LHS are the same");
130 template <
typename F,
typename RHS,
typename... T>
131 void operator<<(expr<tags::subscript, F, T...> &&ex, RHS &&rhs) =
delete;
132 template <
typename F,
typename RHS,
typename... T>
133 void operator<<(expr<tags::subscript, F, T...> &ex, RHS &&rhs) =
delete;
134 template <
typename F,
typename RHS,
typename... T>
135 void operator<<(expr<tags::subscript, F, T...>
const &ex, RHS &&rhs) =
delete;
Provides some utility functions and type traits for the CLEF library.
Provides a basic lazy expression type for the clef library.
Provides functionality to turn lazy expressions into callable objects and to generally simplify the e...
__inline__ void operator<<(expr< tags::function, F, placeholder< Is >... > const &ex, RHS &&rhs)
Assign values to the underlying object of a lazy function call expression.
void clef_auto_assign_subscript(std::vector< T > &v, F f)
Overload of clef_auto_assign_subscript function for std::vector.
__inline__ auto make_function(T &&obj, Phs...)
Factory function for nda::clef::make_fun_impl objects.
Macros used in the nda library.
Provides placeholders for the clef library.
Single node of the expression tree.
childs_t childs
Child nodes of the current expression node.
A placeholder is an empty struct, labelled by an int.
Lazy binary expression for nda::ArrayOrScalar types.