Mercurial > hg > octave-lyh
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