aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/CwiseBinaryOp.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/CwiseBinaryOp.h')
-rw-r--r--Eigen/src/Core/CwiseBinaryOp.h30
1 files changed, 18 insertions, 12 deletions
diff --git a/Eigen/src/Core/CwiseBinaryOp.h b/Eigen/src/Core/CwiseBinaryOp.h
index 5314eb793..63e0fbac0 100644
--- a/Eigen/src/Core/CwiseBinaryOp.h
+++ b/Eigen/src/Core/CwiseBinaryOp.h
@@ -47,20 +47,32 @@
* \sa class ScalarProductOp, class ScalarQuotientOp
*/
template<typename BinaryOp, typename Lhs, typename Rhs>
-struct Scalar<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
-{ typedef typename ei_result_of<BinaryOp(typename Lhs::Scalar,typename Rhs::Scalar)>::type Type; };
+struct ei_traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+ typedef typename ei_result_of<
+ BinaryOp(
+ typename Lhs::Scalar,
+ typename Rhs::Scalar
+ )
+ >::type Scalar;
+ enum {
+ RowsAtCompileTime = Lhs::RowsAtCompileTime,
+ ColsAtCompileTime = Lhs::ColsAtCompileTime,
+ MaxRowsAtCompileTime = Lhs::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = Lhs::MaxColsAtCompileTime
+ };
+};
template<typename BinaryOp, typename Lhs, typename Rhs>
class CwiseBinaryOp : NoOperatorEquals,
public MatrixBase<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
{
public:
- typedef typename Scalar<CwiseBinaryOp>::Type Scalar;
+
+ EIGEN_BASIC_PUBLIC_INTERFACE(CwiseBinaryOp)
+
typedef typename Lhs::AsArg LhsRef;
typedef typename Rhs::AsArg RhsRef;
- friend class MatrixBase<CwiseBinaryOp>;
- friend class MatrixBase<CwiseBinaryOp>::Traits;
- typedef MatrixBase<CwiseBinaryOp> Base;
CwiseBinaryOp(const LhsRef& lhs, const RhsRef& rhs, const BinaryOp& func = BinaryOp())
: m_lhs(lhs), m_rhs(rhs), m_functor(func)
@@ -69,12 +81,6 @@ class CwiseBinaryOp : NoOperatorEquals,
}
private:
- enum {
- RowsAtCompileTime = Lhs::Traits::RowsAtCompileTime,
- ColsAtCompileTime = Lhs::Traits::ColsAtCompileTime,
- MaxRowsAtCompileTime = Lhs::Traits::MaxRowsAtCompileTime,
- MaxColsAtCompileTime = Lhs::Traits::MaxColsAtCompileTime
- };
const CwiseBinaryOp& _asArg() const { return *this; }
int _rows() const { return m_lhs.rows(); }