Rheolef  7.2
an efficient C++ finite element environment
 
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); } \
};
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.