23 #ifndef NDARRAY_ExpressionTraits_h_INCLUDED
24 #define NDARRAY_ExpressionTraits_h_INCLUDED
33 #include <boost/static_assert.hpp>
53 template <
typename Operand,
typename UnaryFunction,
int N>
55 typedef typename UnaryFunction::result_type
Element;
70 template <
typename Operand,
typename UnaryFunction>
72 typedef typename UnaryFunction::result_type
Element;
75 typedef typename boost::remove_const<Element>::type
Value;
85 template <
typename Operand1,
typename Operand2,
typename BinaryFunction,
int N>
86 struct ExpressionTraits< detail::BinaryOpExpression<Operand1,Operand2,BinaryFunction,N> > {
87 typedef typename BinaryFunction::result_type
Element;
104 template <
typename Operand1,
typename Operand2,
typename BinaryFunction>
105 struct ExpressionTraits< detail::BinaryOpExpression<Operand1,Operand2,BinaryFunction,1> > {
106 typedef typename BinaryFunction::result_type
Element;
109 typedef typename boost::remove_const<Element>::type
Value;
119 #endif // !NDARRAY_ExpressionTraits_h_INCLUDED
detail::BinaryOpExpression< typename ExpressionTraits< Operand1 >::Reference, typename ExpressionTraits< Operand2 >::Reference, BinaryFunction, N-1 > Reference
ExpressionTraits< Operand >::ND ND
UnaryFunction::result_type Element
ExpressionTraits< Operand1 >::ND ND
boost::mpl::false_ IsScalar
detail::UnaryOpIterator< Operand, UnaryFunction > Iterator
boost::remove_const< Element >::type Value
boost::mpl::false_ IsScalar
detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction > Iterator
ExpressionTraits< Operand >::ND ND
Forward declarations and default template parameters for ndarray.
boost::mpl::false_ IsScalar
UnaryFunction::result_type Element
BinaryFunction::result_type Element
BinaryFunction::result_type Element
detail::UnaryOpExpression< typename ExpressionTraits< Operand >::Reference, UnaryFunction, N-1 > Value
boost::mpl::false_ IsScalar
detail::BinaryOpIterator< Operand1, Operand2, BinaryFunction > Iterator
ExpressionTraits< Operand1 >::ND ND
boost::remove_const< Element >::type Value
boost::mpl::true_ IsScalar
detail::UnaryOpIterator< Operand, UnaryFunction > Iterator