diff liboctave/MArray2.h @ 10350:12884915a8e4

merge MArray classes & improve Array interface
author Jaroslav Hajek <highegg@gmail.com>
date Sat, 23 Jan 2010 21:41:03 +0100
parents 4c0cdbe0acca
children fd0a3ac60b0e
line wrap: on
line diff
--- a/liboctave/MArray2.h
+++ b/liboctave/MArray2.h
@@ -25,83 +25,14 @@
 #if !defined (octave_MArray2_h)
 #define octave_MArray2_h 1
 
-#include "Array2.h"
-
-// Two dimensional array with math ops.
-
-// But first, some preprocessor abuse...
-
-#include "MArray-decl.h"
-
-MARRAY_OPS_FORWARD_DECLS (MArray2, )
-
-template <class T>
-class
-MArray2 : public Array2<T>
-{
-protected:
-
-  MArray2 (T *d, octave_idx_type n, octave_idx_type m) : Array2<T> (d, n, m) { }
-
-public:
-
-  MArray2 (void) : Array2<T> () { }
-
-  MArray2 (octave_idx_type n, octave_idx_type m) : Array2<T> (n, m) { }
-
-  MArray2 (octave_idx_type n, octave_idx_type m, const T& val) : Array2<T> (n, m, val) { }
-
-  MArray2 (const dim_vector& dv) : Array2<T> (dv) { }
-
-  MArray2 (const dim_vector& dv, const T& val) : Array2<T> (dv, val) { }
-
-  MArray2 (const MArray2<T>& a) : Array2<T> (a) { }
-
-  MArray2 (const Array2<T>& a) : Array2<T> (a) { }
-
-  template <class U>
-  MArray2 (const Array2<U>& a) : Array2<T> (a) { }
+#include "MArray.h"
+#define MArray2 MArray
 
-  template <class U>
-  MArray2 (const MArray2<U>& a) : Array2<T> (a) { }
-
-  ~MArray2 (void) { }
-
-  MArray2<T>& operator = (const MArray2<T>& a)
-    {
-      Array2<T>::operator = (a);
-      return *this;
-    }
-
-  MArray2<T>& insert (const Array2<T>& a, octave_idx_type r, octave_idx_type c)
-  {
-    Array2<T>::insert (a, r, c);
-    return *this;
-  }
-
-  MArray2<T> transpose (void) const { return Array2<T>::transpose (); }
-  MArray2<T> hermitian (T (*fcn) (const T&) = 0) const { return Array2<T>::hermitian (fcn); }
+// If we're with GNU C++, issue a warning.
+#ifdef __GNUC__
+#warning Using MArray2<T> is deprecated. Use MArray<T>.
+#endif
 
-  MArray2<T> diag (octave_idx_type k) const
-  {
-    return Array2<T>::diag (k);
-  }
 
-  // FIXME: should go away.
-  template <class U>
-  MArray2<U>
-  map (U (&fcn) (T)) const
-  { return Array2<T>::template map<U> (fcn); }
-
-  template <class U>
-  MArray2<U>
-  map (U (&fcn) (const T&)) const
-  { return Array2<T>::template map<U> (fcn); }
-
-  // Currently, the OPS functions don't need to be friends, but that
-  // may change.
-
-  // MARRAY_OPS_FRIEND_DECLS (MArray2)
-};
 
 #endif