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	Wed Nov 19 06:26:04 1997 +0000
+++ b/liboctave/MArray2.h	Wed Nov 19 22:35:03 1997 +0000
@@ -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);