31 template <
typename T,
typename RHS>
44 template <
typename T,
typename RHS>
59 template <
typename T,
typename RHS>
75 template <
typename Tag,
typename... Childs,
typename RHS>
81 template <
typename Tag,
typename... Childs,
typename RHS>
98 template <
typename T,
typename RHS,
int... Is>
100 static_assert(detail::all_different(Is...),
"Error in clef operator<<: Two of the placeholders on the LHS are the same");
105 template <
typename F,
typename RHS,
int... Is>
106 FORCEINLINE
void operator<<(
expr<tags::subscript, F, placeholder<Is>...> &&ex, RHS &&rhs) {
107 static_assert(detail::all_different(Is...),
"Error in clef operator<<: Two of the placeholders on the LHS are the same");
112 template <
typename F,
typename RHS,
int... Is>
113 FORCEINLINE
void operator<<(expr<tags::subscript, F, placeholder<Is>...> &ex, RHS &&rhs) {
114 static_assert(detail::all_different(Is...),
"Error in clef operator<<: Two of the placeholders on the LHS are the same");
119 template <
typename F,
typename RHS,
typename... T>
121 template <
typename F,
typename RHS,
typename... T>
123 template <
typename F,
typename RHS,
typename... T>
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.