42#include "../../../traits/expressionTraits.hpp"
43#include "../traversalLogic.hpp"
59 template<
typename T_Impl>
70 template<
typename Node,
typename... Args>
76 template<
typename Node,
typename... Args>
87 template<
typename Node,
typename... Args>
89 cast().handleActive(
node, std::forward<Args>(args)...);
93 template<
typename Node,
typename... Args>
95 cast().handleConstant(
node, std::forward<Args>(args)...);
103 return static_cast<Impl&
>(*this);
#define CODI_INLINE
See codi::Config::ForcedInlines.
Definition config.h:469
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:96
#define CODI_T(...)
Abbreviation for CODI_TEMPLATE.
Definition macros.hpp:116
typename std::enable_if< IsLhsExpression< Expr >::value, T >::type EnableIfLhsExpression
Enable if wrapper for IsLhsExpression.
Definition expressionTraits.hpp:183
typename std::enable_if< IsConstantExpression< Expr >::value, T >::type EnableIfConstantExpression
Enable if wrapper for IsConstantExpression.
Definition expressionTraits.hpp:200
CoDiPack - Code Differentiation Package.
Definition codi.hpp:94
inlinevoid CODI_UNUSED(Args const &...)
Disable unused warnings for an arbitrary number of arguments.
Definition macros.hpp:54
Implement logic for leaf nodes only.
Definition forEachLeafLogic.hpp:60
void handleActive(Node const &node, Args &&... args)
Called for leaf nodes which implement LhsExpressionInterface.
Definition forEachLeafLogic.hpp:71
inlineExpressionTraits::EnableIfConstantExpression< Node > leaf(Node const &node, Args &&... args)
Called for all leaf nodes in the expression.
Definition forEachLeafLogic.hpp:94
void handleConstant(Node const &node, Args &&... args)
Called for leaf nodes which implement ConstantExpression.
Definition forEachLeafLogic.hpp:77
T_Impl Impl
See ForEachLeafLogic.
Definition forEachLeafLogic.hpp:63
inlineExpressionTraits::EnableIfLhsExpression< Node > leaf(Node const &node, Args &&... args)
Called for all leaf nodes in the expression.
Definition forEachLeafLogic.hpp:88
Traversal of CoDiPack expressions.
Definition traversalLogic.hpp:57
inlinevoid node(Node const &node, Args &&... args)
Called for each node in the expression.
Definition traversalLogic.hpp:87