+2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
+
+ * std/gslice_array.h, std/indirect_array.h, std/mask_array.h,
+ std/slice_array.h, std/std_valarray.h, std/valarray_meta.h:
+ Do not paste anything after 'operator' keyword.
+
2000-05-15 David Edelsohn <edelsohn@gnu.org>
* Makefile.in: Change "pic" to depend on $(PICFLAG), not
#define _DEFINE_VALARRAY_OPERATOR(op, name) \
template<typename _Tp> \
inline void \
-gslice_array<_Tp>::operator##op##= (const valarray<_Tp>& __v) const \
+gslice_array<_Tp>::operator op##= (const valarray<_Tp>& __v) const \
{ \
_Array_augmented_##name (_M_array, _Array<size_t>(_M_index), \
_Array<_Tp> (__v), __v.size ()); \
\
template<typename _Tp> template<class E> \
inline void \
-gslice_array<_Tp>::operator##op##= (const _Expr<E, _Tp>& __e) const \
+gslice_array<_Tp>::operator op##= (const _Expr<E, _Tp>& __e) const \
{ \
_Array_augmented_##name (_M_array, _Array<size_t>(_M_index), __e, \
_M_index.size()); \
#define _DEFINE_VALARRAY_OPERATOR(op, name) \
template<typename _Tp> \
inline void \
-indirect_array<_Tp>::operator##op##= (const valarray<_Tp>& __v) const \
+indirect_array<_Tp>::operator op##= (const valarray<_Tp>& __v) const \
{ \
_Array_augmented_##name (_M_array, _M_index, _Array<_Tp> (__v), _M_sz); \
} \
\
template<typename _Tp> template<class _Dom> \
inline void \
-indirect_array<_Tp>::operator##op##= (const _Expr<_Dom,_Tp>& __e) const \
+indirect_array<_Tp>::operator op##= (const _Expr<_Dom,_Tp>& __e) const \
{ \
_Array_augmented_##name (_M_array, _M_index, __e, _M_sz); \
}
#define _DEFINE_VALARRAY_OPERATOR(op, name) \
template<typename _T> \
inline void \
-mask_array<_T>::operator##op##= (const valarray<_T>& __v) const \
+mask_array<_T>::operator op##= (const valarray<_T>& __v) const \
{ \
_Array_augmented_##name (_M_array, _M_mask, \
_Array<_T> (__v), __v.size ()); \
\
template<typename _T> template<class E> \
inline void \
-mask_array<_T>::operator##op##= (const _Expr<E, _T>& __e) const \
+mask_array<_T>::operator op##= (const _Expr<E, _T>& __e) const \
{ \
_Array_augmented_##name (_M_array, _M_mask, __e, __e.size ()); \
}
#define _DEFINE_VALARRAY_OPERATOR(op, name) \
template<typename _T> \
inline void \
-slice_array<_T>::operator##op##= (const valarray<_T>& __v) const \
+slice_array<_T>::operator op##= (const valarray<_T>& __v) const \
{ \
_Array_augmented_##name (_M_array, _M_sz, _M_stride, _Array<_T> (__v));\
} \
\
template<typename _T> template<class _Dom> \
inline void \
-slice_array<_T>::operator##op##= (const _Expr<_Dom,_T>& __e) const \
+slice_array<_T>::operator op##= (const _Expr<_Dom,_T>& __e) const \
{ \
_Array_augmented_##name (_M_array, _M_stride, __e, _M_sz); \
}
-
+
_DEFINE_VALARRAY_OPERATOR(*, multiplies)
_DEFINE_VALARRAY_OPERATOR(/, divides)
#define _DEFINE_VALARRAY_UNARY_OPERATOR(_Op, _Name) \
template<typename _Tp> \
inline _Expr<_UnClos<_Name,_ValArray,_Tp>, _Tp> \
- valarray<_Tp>::operator##_Op() const \
+ valarray<_Tp>::operator _Op() const \
{ \
typedef _UnClos<_Name,_ValArray,_Tp> _Closure; \
return _Expr<_Closure, _Tp> (_Closure (*this)); \
#define _DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT(_Op, _Name) \
template<class _Tp> \
inline valarray<_Tp> & \
- valarray<_Tp>::operator##_Op##= (const _Tp &__t) \
+ valarray<_Tp>::operator _Op##= (const _Tp &__t) \
{ \
_Array_augmented_##_Name (_Array<_Tp>(_M_data), _M_size, __t); \
return *this; \
\
template<class _Tp> \
inline valarray<_Tp> & \
- valarray<_Tp>::operator##_Op##= (const valarray<_Tp> &__v) \
+ valarray<_Tp>::operator _Op##= (const valarray<_Tp> &__v) \
{ \
_Array_augmented_##_Name (_Array<_Tp>(_M_data), _M_size, \
_Array<_Tp>(__v._M_data)); \
#define _DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(_Op, _Name) \
template<class _Tp> template<class _Dom> \
inline valarray<_Tp> & \
- valarray<_Tp>::operator##_Op##= (const _Expr<_Dom,_Tp> &__e) \
+ valarray<_Tp>::operator _Op##= (const _Expr<_Dom,_Tp> &__e) \
{ \
_Array_augmented_##_Name (_Array<_Tp>(_M_data), __e, _M_size); \
return *this; \
#define _DEFINE_BINARY_OPERATOR(_Op, _Name) \
template<typename _Tp> \
inline _Expr<_BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp>, _Tp> \
- operator##_Op (const valarray<_Tp> &__v, const valarray<_Tp> &__w) \
+ operator _Op (const valarray<_Tp> &__v, const valarray<_Tp> &__w) \
{ \
typedef _BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp> _Closure; \
return _Expr<_Closure, _Tp> (_Closure (__v, __w)); \
\
template<typename _Tp> \
inline _Expr<_BinClos<_Name,_ValArray,_Constant,_Tp,_Tp>,_Tp> \
- operator##_Op (const valarray<_Tp> &__v, const _Tp &__t) \
+ operator _Op (const valarray<_Tp> &__v, const _Tp &__t) \
{ \
typedef _BinClos<_Name,_ValArray,_Constant,_Tp,_Tp> _Closure; \
return _Expr<_Closure, _Tp> (_Closure (__v, __t)); \
\
template<typename _Tp> \
inline _Expr<_BinClos<_Name,_Constant,_ValArray,_Tp,_Tp>,_Tp> \
- operator##_Op (const _Tp &__t, const valarray<_Tp> &__v) \
+ operator _Op (const _Tp &__t, const valarray<_Tp> &__v) \
{ \
typedef _BinClos<_Name,_Constant,_ValArray,_Tp,_Tp> _Closure; \
return _Expr<_Closure, _Tp> (_Closure (__t, __v)); \
#define _DEFINE_LOGICAL_OPERATOR(_Op, _Name) \
template<typename _Tp> \
inline _Expr<_BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp>,bool> \
- operator##_Op (const valarray<_Tp> &__v, const valarray<_Tp> &__w) \
+ operator _Op (const valarray<_Tp> &__v, const valarray<_Tp> &__w) \
{ \
typedef _BinClos<_Name,_ValArray,_ValArray,_Tp,_Tp> _Closure; \
return _Expr<_Closure, bool> (_Closure (__v, __w)); \
\
template<class _Tp> \
inline _Expr<_BinClos<_Name,_ValArray,_Constant,_Tp,_Tp>,bool> \
- operator##_Op (const valarray<_Tp> &__v, const _Tp &__t) \
+ operator _Op (const valarray<_Tp> &__v, const _Tp &__t) \
{ \
typedef _BinClos<_Name,_ValArray,_Constant,_Tp,_Tp> _Closure; \
return _Expr<_Closure, bool> (_Closure (__v, __t)); \
\
template<class _Tp> \
inline _Expr<_BinClos<_Name,_Constant,_ValArray,_Tp,_Tp>,bool> \
- operator##_Op (const _Tp &__t, const valarray<_Tp> &__v) \
+ operator _Op (const _Tp &__t, const valarray<_Tp> &__v) \
{ \
typedef _BinClos<_Name,_Constant,_ValArray,_Tp,_Tp> _Closure; \
return _Expr<_Closure, bool> (_Closure (__t, __v)); \
#define _DEFINE_EXPR_UNARY_OPERATOR(_Op, _Name) \
template<class _Dom, typename _Tp> \
inline _Expr<_UnClos<_Name,_Expr,_Dom>,_Tp> \
-_Expr<_Dom,_Tp>::operator##_Op () const \
+_Expr<_Dom,_Tp>::operator _Op () const \
{ \
typedef _UnClos<_Name,_Expr,_Dom> _Closure; \
return _Expr<_Closure,_Tp> (_Closure (this->_M_closure)); \
template<class _Dom1, class _Dom2> \
inline _Expr<_BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2>, \
typename _Name<typename _Dom1::value_type>::result_type> \
-operator##_Op (const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
+operator _Op (const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
const _Expr<_Dom2,typename _Dom2::value_type>& __w) \
{ \
typedef typename _Dom1::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_Expr,_Constant,_Dom,typename _Dom::value_type>, \
typename _Name<typename _Dom::value_type>::result_type> \
-operator##_Op (const _Expr<_Dom,typename _Dom::value_type>& __v, \
+operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __v, \
const typename _Dom::value_type& __t) \
{ \
typedef typename _Dom::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_Constant,_Expr,typename _Dom::value_type,_Dom>, \
typename _Name<typename _Dom::value_type>::result_type> \
-operator##_Op (const typename _Dom::value_type& __t, \
+operator _Op (const typename _Dom::value_type& __t, \
const _Expr<_Dom,typename _Dom::value_type>& __v) \
{ \
typedef typename _Dom::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_Expr,_ValArray,_Dom,typename _Dom::value_type>, \
typename _Name<typename _Dom::value_type>::result_type> \
-operator##_Op (const _Expr<_Dom,typename _Dom::value_type>& __e, \
+operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __e, \
const valarray<typename _Dom::value_type>& __v) \
{ \
typedef typename _Dom::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_ValArray,_Expr,typename _Dom::value_type,_Dom>, \
typename _Name<typename _Dom::value_type>::result_type> \
-operator##_Op (const valarray<typename _Dom::value_type>& __v, \
+operator _Op (const valarray<typename _Dom::value_type>& __v, \
const _Expr<_Dom,typename _Dom::value_type>& __e) \
{ \
typedef typename _Dom::value_type _Tp; \
#define _DEFINE_EXPR_RELATIONAL_OPERATOR(_Op, _Name) \
template<class _Dom1, class _Dom2> \
inline _Expr<_BinClos<_Name,_Expr,_Expr,_Dom1,_Dom2>, bool> \
-operator##_Op (const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
+operator _Op (const _Expr<_Dom1,typename _Dom1::value_type>& __v, \
const _Expr<_Dom2,typename _Dom2::value_type>& __w) \
{ \
typedef typename _Dom1::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_Expr,_Constant,_Dom,typename _Dom::value_type>, \
bool> \
-operator##_Op (const _Expr<_Dom,typename _Dom::value_type>& __v, \
+operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __v, \
const typename _Dom::value_type& __t) \
{ \
typedef typename _Dom::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_Constant,_Expr,typename _Dom::value_type,_Dom>, \
bool> \
-operator##_Op (const typename _Dom::value_type& __t, \
+operator _Op (const typename _Dom::value_type& __t, \
const _Expr<_Dom,typename _Dom::value_type>& __v) \
{ \
typedef typename _Dom::value_type _Arg; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_Expr,_ValArray,_Dom,typename _Dom::value_type>, \
bool> \
-operator##_Op (const _Expr<_Dom,typename _Dom::value_type>& __e, \
+operator _Op (const _Expr<_Dom,typename _Dom::value_type>& __e, \
const valarray<typename _Dom::value_type>& __v) \
{ \
typedef typename _Dom::value_type _Tp; \
template<class _Dom> \
inline _Expr<_BinClos<_Name,_ValArray,_Expr,typename _Dom::value_type,_Dom>, \
bool> \
-operator##_Op (const valarray<typename _Dom::value_type>& __v, \
+operator _Op (const valarray<typename _Dom::value_type>& __v, \
const _Expr<_Dom,typename _Dom::value_type>& __e) \
{ \
typedef typename _Dom::value_type _Tp; \