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:457
#define CODI_DD(Type, Default)
Abbreviation for CODI_DECLARE_DEFAULT.
Definition macros.hpp:94
#define CODI_T(...)
Abbreviation for CODI_TEMPLATE.
Definition macros.hpp:111
typename std::enable_if< IsLhsExpression< Expr >::value, T >::type EnableIfLhsExpression
Enable if wrapper for IsLhsExpression.
Definition expressionTraits.hpp:137
typename std::enable_if< IsConstantExpression< Expr >::value, T >::type EnableIfConstantExpression
Enable if wrapper for IsConstantExpression.
Definition expressionTraits.hpp:156
CoDiPack - Code Differentiation Package.
Definition codi.hpp:90
void CODI_UNUSED(Args const &...)
Disable unused warnings for an arbitrary number of arguments.
Definition macros.hpp:46
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
void handleConstant(Node const &node, Args &&... args)
Called for leaf nodes which implement ConstantExpression.
Definition forEachLeafLogic.hpp:77
ExpressionTraits::EnableIfConstantExpression< Node > leaf(Node const &node, Args &&... args)
Called for all leaf nodes in the expression.
Definition forEachLeafLogic.hpp:94
ExpressionTraits::EnableIfLhsExpression< Node > leaf(Node const &node, Args &&... args)
Called for all leaf nodes in the expression.
Definition forEachLeafLogic.hpp:88
T_Impl Impl
See ForEachLeafLogic.
Definition forEachLeafLogic.hpp:63
Traversal of CoDiPack expressions.
Definition traversalLogic.hpp:56
void node(Node const &node, Args &&... args)
Called for each node in the expression.
Definition traversalLogic.hpp:86
void link(Child const &child, Root const &root, Args &&... args)
Called for all links in the expression.
Definition traversalLogic.hpp:110