Mercurial > hg > octave-lyh
diff liboctave/MArray2.h @ 3107:a8dcfbf87ea3
[project @ 1997-11-19 22:34:59 by jwe]
author | jwe |
---|---|
date | Wed, 19 Nov 1997 22:35:03 +0000 |
parents | 8b262e771614 |
children | 7aae2c3636a7 |
line wrap: on
line diff
--- a/liboctave/MArray2.h +++ b/liboctave/MArray2.h @@ -30,6 +30,71 @@ #include "Array2.h" +#if defined (LTGT) +#undef LTGT +#endif + +#if !defined (CXX_NEW_FRIEND_TEMPLATE_DECL) +#define LTGT +#else + +#define LTGT <> + +template <class T> +class MArray2; + +template <typename T> MArray2<T>& +operator += (MArray2<T>& a, const T& s); + +template <typename T> MArray2<T>& +operator -= (MArray2<T>& a, const T& s); + +template <typename T> MArray2<T>& +operator += (MArray2<T>& a, const MArray2<T>& b); + +template <typename T> MArray2<T>& +operator -= (MArray2<T>& a, const MArray2<T>& b); + +template <typename T> MArray2<T> +operator + (const MArray2<T>& a, const T& s); + +template <typename T> MArray2<T> +operator - (const MArray2<T>& a, const T& s); + +template <typename T> MArray2<T> +operator * (const MArray2<T>& a, const T& s); + +template <typename T> MArray2<T> +operator / (const MArray2<T>& a, const T& s); + +template <typename T> MArray2<T> +operator + (const T& s, const MArray2<T>& a); + +template <typename T> MArray2<T> +operator - (const T& s, const MArray2<T>& a); + +template <typename T> MArray2<T> +operator * (const T& s, const MArray2<T>& a); + +template <typename T> MArray2<T> +operator / (const T& s, const MArray2<T>& a); + +template <typename T> MArray2<T> +operator + (const MArray2<T>& a, const MArray2<T>& b); + +template <typename T> MArray2<T> +operator - (const MArray2<T>& a, const MArray2<T>& b); + +template <typename T> MArray2<T> +product (const MArray2<T>& a, const MArray2<T>& b); + +template <typename T> MArray2<T> +quotient (const MArray2<T>& a, const MArray2<T>& b); + +template <typename T> MArray2<T> +operator - (const MArray2<T>& a); +#endif + // Two dimensional array with math ops. template <class T> @@ -57,39 +122,41 @@ // element by element MArray2 by scalar ops - friend MArray2<T>& operator += (MArray2<T>& a, const T& s); - friend MArray2<T>& operator -= (MArray2<T>& a, const T& s); + friend MArray2<T>& operator += LTGT (MArray2<T>& a, const T& s); + friend MArray2<T>& operator -= LTGT (MArray2<T>& a, const T& s); // element by element MArray2 by MArray2 ops - friend MArray2<T>& operator += (MArray2<T>& a, const MArray2<T>& b); - friend MArray2<T>& operator -= (MArray2<T>& a, const MArray2<T>& b); + friend MArray2<T>& operator += LTGT (MArray2<T>& a, const MArray2<T>& b); + friend MArray2<T>& operator -= LTGT (MArray2<T>& a, const MArray2<T>& b); // element by element MArray2 by scalar ops - friend MArray2<T> operator + (const MArray2<T>& a, const T& s); - friend MArray2<T> operator - (const MArray2<T>& a, const T& s); - friend MArray2<T> operator * (const MArray2<T>& a, const T& s); - friend MArray2<T> operator / (const MArray2<T>& a, const T& s); + friend MArray2<T> operator + LTGT (const MArray2<T>& a, const T& s); + friend MArray2<T> operator - LTGT (const MArray2<T>& a, const T& s); + friend MArray2<T> operator * LTGT (const MArray2<T>& a, const T& s); + friend MArray2<T> operator / LTGT (const MArray2<T>& a, const T& s); // element by element scalar by MArray2 ops - friend MArray2<T> operator + (const T& s, const MArray2<T>& a); - friend MArray2<T> operator - (const T& s, const MArray2<T>& a); - friend MArray2<T> operator * (const T& s, const MArray2<T>& a); - friend MArray2<T> operator / (const T& s, const MArray2<T>& a); + friend MArray2<T> operator + LTGT (const T& s, const MArray2<T>& a); + friend MArray2<T> operator - LTGT (const T& s, const MArray2<T>& a); + friend MArray2<T> operator * LTGT (const T& s, const MArray2<T>& a); + friend MArray2<T> operator / LTGT (const T& s, const MArray2<T>& a); // element by element MArray2 by MArray2 ops - friend MArray2<T> operator + (const MArray2<T>& a, const MArray2<T>& b); - friend MArray2<T> operator - (const MArray2<T>& a, const MArray2<T>& b); + friend MArray2<T> operator + LTGT (const MArray2<T>& a, const MArray2<T>& b); + friend MArray2<T> operator - LTGT (const MArray2<T>& a, const MArray2<T>& b); - friend MArray2<T> product (const MArray2<T>& a, const MArray2<T>& b); - friend MArray2<T> quotient (const MArray2<T>& a, const MArray2<T>& b); + friend MArray2<T> product LTGT (const MArray2<T>& a, const MArray2<T>& b); + friend MArray2<T> quotient LTGT (const MArray2<T>& a, const MArray2<T>& b); - friend MArray2<T> operator - (const MArray2<T>& a); + friend MArray2<T> operator - LTGT (const MArray2<T>& a); }; +#undef LTGT + extern void gripe_nonconformant (const char *op, int op1_nr, int op1_nc, int op2_nr, int op2_nc);