Loading...
Searching...
No Matches
expr_utilities.h File Reference

Go to the source code of this file.

## Classes

class | generic_binder1st
struct | generic_binder2nd< BinaryFunction, A2 >
struct | assign_op
struct | plus_assign
struct | minus_assign
struct | multiplies_assign
struct | divides_assign
struct | iterator_on_constant< T >

## Namespaces

namespace | rheolef
| This file is part of Rheolef.
namespace | rheolef::details

## Macros

#define | _RHEOLEF_generic_unary_syntax_functor(OP, NAME)
#define | _RHEOLEF_generic_binary_syntax_functor(OP, NAME)

## Functions

| _RHEOLEF_generic_unary_syntax_functor (+, generic_unary_plus) _RHEOLEF_generic_unary_syntax_functor(-
generic_negate | _RHEOLEF_generic_binary_syntax_functor (+, generic_plus) _RHEOLEF_generic_binary_syntax_functor(-
generic_negate generic_minus _RHEOLEF_generic_binary_syntax_functor generic_multiplies | _RHEOLEF_generic_binary_syntax_functor (/, generic_divides) template< class BinaryFunction
template<class ForwardIterator , class InputIterator , class OpAssign >
void | assign_with_operator (ForwardIterator first, ForwardIterator last, InputIterator iter_rhs, OpAssign op_assign)

## Macro Definition Documentation

## _RHEOLEF_generic_unary_syntax_functor

#define _RHEOLEF_generic_unary_syntax_functor | ( |  | OP,
|  |  | NAME
| ) |  |

Value:
template <typename T = void> \
struct NAME; \
\
template <typename T> \
struct NAME: public std::unary_function<T, T> { \
T operator() (const T& x) const { return OP x; } \
}; \
\
template<> \
struct NAME<void> { \
template <typename T> \
auto operator() (T&& x) const \
noexcept (noexcept (OP std::forward<T>(x))) \
-> decltype(OP std::forward<T>(x)) \
{ return OP std::forward<T>(x); } \
};
T
Expr1::float_type T
Definition field_expr.h:230

Definition at line 37 of file expr_utilities.h.

## _RHEOLEF_generic_binary_syntax_functor

#define _RHEOLEF_generic_binary_syntax_functor | ( |  | OP,
|  |  | NAME
| ) |  |

Value:
template <typename T = void> \
struct NAME; \
\
template<typename T> \
struct NAME: public std::binary_function<T, T, T> { \
T operator() (const T& x, const T& y) const { return x OP y; } \
}; \
\
template<> \
struct NAME<void> { \
template <typename T, typename U> \
auto operator() (T&& t, U&& y) const \
noexcept (noexcept (std::forward<T>(t) OP std::forward<U>(y))) \
-> decltype(std::forward<T>(t) OP std::forward<U>(y)) \
{ return std::forward<T>(t) OP std::forward<U>(y); } \
};

Definition at line 55 of file expr_utilities.h.