42 #ifndef SACADO_ETPCE_EXPRESSIONTRAITS_HPP
43 #define SACADO_ETPCE_EXPRESSIONTRAITS_HPP
45 #include "Sacado_Traits.hpp"
50 template <
typename T>
class Expr;
61 struct ScalarType< ETPCE::Expr<T> > {
67 struct ValueType< ETPCE::Expr<T> > {
73 struct IsADType< ETPCE::Expr<T> > {
74 static const bool value =
true;
79 struct IsScalarType< ETPCE::Expr<T> > {
80 static const bool value =
false;
85 struct Value< ETPCE::Expr<T> > {
86 typedef typename ValueType< ETPCE::Expr<T> >::type
value_type;
93 struct ScalarValue< ETPCE::Expr<T> > {
94 typedef typename ValueType< ETPCE::Expr<T> >::type
value_type;
95 typedef typename ScalarType< ETPCE::Expr<T> >::type
scalar_type;
97 return ScalarValue<value_type>::eval(
x.val()); }
102 #endif // SACADO_ETPCE_EXPRESSIONTRAITS_HPP