Mercurial > hg > octave-lyh
diff liboctave/MArray.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 | e71b3d1dd327 |
line wrap: on
line diff
--- a/liboctave/MArray.h +++ b/liboctave/MArray.h @@ -30,6 +30,71 @@ #include "Array.h" +#if defined (LTGT) +#undef LTGT +#endif + +#if !defined (CXX_NEW_FRIEND_TEMPLATE_DECL) +#define LTGT +#else + +#define LTGT <> + +template <class T> +class MArray; + +template <typename T> MArray<T>& +operator += (MArray<T>& a, const T& s); + +template <typename T> MArray<T>& +operator -= (MArray<T>& a, const T& s); + +template <typename T> MArray<T>& +operator += (MArray<T>& a, const MArray<T>& b); + +template <typename T> MArray<T>& +operator -= (MArray<T>& a, const MArray<T>& b); + +template <typename T> MArray<T> +operator + (const MArray<T>& a, const T& s); + +template <typename T> MArray<T> +operator - (const MArray<T>& a, const T& s); + +template <typename T> MArray<T> +operator * (const MArray<T>& a, const T& s); + +template <typename T> MArray<T> +operator / (const MArray<T>& a, const T& s); + +template <typename T> MArray<T> +operator + (const T& s, const MArray<T>& a); + +template <typename T> MArray<T> +operator - (const T& s, const MArray<T>& a); + +template <typename T> MArray<T> +operator * (const T& s, const MArray<T>& a); + +template <typename T> MArray<T> +operator / (const T& s, const MArray<T>& a); + +template <typename T> MArray<T> +operator + (const MArray<T>& a, const MArray<T>& b); + +template <typename T> MArray<T> +operator - (const MArray<T>& a, const MArray<T>& b); + +template <class T> MArray<T> +product (const MArray<T>& a, const MArray<T>& b); + +template <typename T> MArray<T> +quotient (const MArray<T>& a, const MArray<T>& b); + +template <typename T> MArray<T> +operator - (const MArray<T>& a); +#endif + // One dimensional array with math ops. template <class T> @@ -57,44 +122,45 @@ // element by element MArray by scalar ops - friend MArray<T>& operator += (MArray<T>& a, const T& s); - friend MArray<T>& operator -= (MArray<T>& a, const T& s); + friend MArray<T>& operator += LTGT (MArray<T>& a, const T& s); + friend MArray<T>& operator -= LTGT (MArray<T>& a, const T& s); // element by element MArray by MArray ops - friend MArray<T>& operator += (MArray<T>& a, const MArray<T>& b); - friend MArray<T>& operator -= (MArray<T>& a, const MArray<T>& b); + friend MArray<T>& operator += LTGT (MArray<T>& a, const MArray<T>& b); + friend MArray<T>& operator -= LTGT (MArray<T>& a, const MArray<T>& b); // element by element MArray by scalar ops - friend MArray<T> operator + (const MArray<T>& a, const T& s); - friend MArray<T> operator - (const MArray<T>& a, const T& s); - friend MArray<T> operator * (const MArray<T>& a, const T& s); - friend MArray<T> operator / (const MArray<T>& a, const T& s); + friend MArray<T> operator + LTGT (const MArray<T>& a, const T& s); + friend MArray<T> operator - LTGT (const MArray<T>& a, const T& s); + friend MArray<T> operator * LTGT (const MArray<T>& a, const T& s); + friend MArray<T> operator / LTGT (const MArray<T>& a, const T& s); // element by element scalar by MArray ops - friend MArray<T> operator + (const T& s, const MArray<T>& a); - friend MArray<T> operator - (const T& s, const MArray<T>& a); - friend MArray<T> operator * (const T& s, const MArray<T>& a); - friend MArray<T> operator / (const T& s, const MArray<T>& a); + friend MArray<T> operator + LTGT (const T& s, const MArray<T>& a); + friend MArray<T> operator - LTGT (const T& s, const MArray<T>& a); + friend MArray<T> operator * LTGT (const T& s, const MArray<T>& a); + friend MArray<T> operator / LTGT (const T& s, const MArray<T>& a); // element by element MArray by MArray ops - friend MArray<T> operator + (const MArray<T>& a, const MArray<T>& b); + friend MArray<T> operator + LTGT (const MArray<T>& a, const MArray<T>& b); - friend MArray<T> operator - (const MArray<T>& a, const MArray<T>& b); + friend MArray<T> operator - LTGT (const MArray<T>& a, const MArray<T>& b); - friend MArray<T> product (const MArray<T>& a, const MArray<T>& b); - friend MArray<T> quotient (const MArray<T>& a, const MArray<T>& b); + friend MArray<T> product LTGT (const MArray<T>& a, const MArray<T>& b); + friend MArray<T> quotient LTGT (const MArray<T>& a, const MArray<T>& b); - friend MArray<T> operator - (const MArray<T>& a); + friend MArray<T> operator - LTGT (const MArray<T>& a); }; +#undef LTGT + extern void gripe_nonconformant (const char *op, int op1_len, int op2_len); - #define INSTANTIATE_MARRAY_FRIENDS(T) \ template MArray<T>& operator += (MArray<T>& a, const T& s); \ template MArray<T>& operator -= (MArray<T>& a, const T& s); \