42 #ifndef SACADO_MP_EXPRESSIONTRAITS_HPP 43 #define SACADO_MP_EXPRESSIONTRAITS_HPP 45 #include "Sacado_Traits.hpp" 50 template <
typename T>
class Expr;
58 struct ScalarType< MP::Expr<T> > {
64 struct ValueType< MP::Expr<T> > {
70 struct IsADType< MP::Expr<T> > {
71 static const bool value =
true;
76 struct IsScalarType< MP::Expr<T> > {
77 static const bool value =
false;
82 struct Value< MP::Expr<T> > {
83 typedef typename ValueType< MP::Expr<T> >::type
value_type;
90 struct ScalarValue< MP::Expr<T> > {
91 typedef typename ValueType< MP::Expr<T> >::type
value_type;
94 return ScalarValue<value_type>::eval(
x.val()); }
99 #endif // SACADO_MP_EXPRESSIONTRAITS_HPP MP::Expr< T >::value_type type
ScalarType< typename MP::Expr< T >::value_type >::type type
const IndexType const IndexType const IndexType const IndexType const ValueType const ValueType * x
static const value_type & eval(const MP::Expr< T > &x)
ScalarType< MP::Expr< T > >::type scalar_type
static const scalar_type & eval(const MP::Expr< T > &x)
ValueType< MP::Expr< T > >::type value_type
ValueType< MP::Expr< T > >::type value_type