From 569c30eb6d2b0a606f2cc331fe2c45ade260cfe7 Mon Sep 17 00:00:00 2001 From: "dbaron%fas.harvard.edu" Date: Tue, 31 Oct 2000 04:33:32 +0000 Subject: [PATCH] Fix gcc 2.7.x bustage by defining |operator+()| for combinations involving |nsPromiseSubstring|, within |#ifdef NEED_CPP_DERIVED_TEMPLATE_OPERATORS|. (Based on scc's proposal earlier.) r=waterson git-svn-id: svn://10.0.0.236/trunk@82087 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/string/public/nsAReadableString.h | 18 ++++++++++++++++++ mozilla/xpcom/ds/nsAReadableString.h | 18 ++++++++++++++++++ .../xpcom/string/public/nsAReadableString.h | 18 ++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/mozilla/string/public/nsAReadableString.h b/mozilla/string/public/nsAReadableString.h index 1eb71663943..5a60710fcf0 100644 --- a/mozilla/string/public/nsAReadableString.h +++ b/mozilla/string/public/nsAReadableString.h @@ -1271,6 +1271,22 @@ nsPromiseSubstring::GetReadableFragment( nsReadableFragment& aFrag +#ifdef NEED_CPP_DERIVED_TEMPLATE_OPERATORS + +#define NS_DEF_TEMPLATE_OPERATOR_PLUS + #define NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T) \ + template \ + inline \ + nsPromiseConcatenation \ + operator+( const _String1T& lhs, const _String2T& rhs ) \ + { \ + return nsPromiseConcatenation(lhs, rhs); \ + } + + NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseSubstring, nsPromiseSubstring) + NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseConcatenation, nsPromiseSubstring) + +#endif // NEED_CPP_DERIVED_TEMPLATE_OPERATORS // @@ -1410,6 +1426,8 @@ operator+( const basic_nsAReadableString& lhs, const basic_nsAReadableStr #define NS_DEF_DERIVED_STRING_OPERATOR_PLUS(_StringT, _CharT) \ NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(_StringT, _StringT, _CharT) \ + NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseSubstring<_CharT>, _StringT, _CharT) \ + NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(_StringT, nsPromiseSubstring<_CharT>, _CharT) \ NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseConcatenation<_CharT>, _StringT, _CharT) #define NS_DEF_2_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T, _CharT) \ diff --git a/mozilla/xpcom/ds/nsAReadableString.h b/mozilla/xpcom/ds/nsAReadableString.h index 1eb71663943..5a60710fcf0 100644 --- a/mozilla/xpcom/ds/nsAReadableString.h +++ b/mozilla/xpcom/ds/nsAReadableString.h @@ -1271,6 +1271,22 @@ nsPromiseSubstring::GetReadableFragment( nsReadableFragment& aFrag +#ifdef NEED_CPP_DERIVED_TEMPLATE_OPERATORS + +#define NS_DEF_TEMPLATE_OPERATOR_PLUS + #define NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T) \ + template \ + inline \ + nsPromiseConcatenation \ + operator+( const _String1T& lhs, const _String2T& rhs ) \ + { \ + return nsPromiseConcatenation(lhs, rhs); \ + } + + NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseSubstring, nsPromiseSubstring) + NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseConcatenation, nsPromiseSubstring) + +#endif // NEED_CPP_DERIVED_TEMPLATE_OPERATORS // @@ -1410,6 +1426,8 @@ operator+( const basic_nsAReadableString& lhs, const basic_nsAReadableStr #define NS_DEF_DERIVED_STRING_OPERATOR_PLUS(_StringT, _CharT) \ NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(_StringT, _StringT, _CharT) \ + NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseSubstring<_CharT>, _StringT, _CharT) \ + NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(_StringT, nsPromiseSubstring<_CharT>, _CharT) \ NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseConcatenation<_CharT>, _StringT, _CharT) #define NS_DEF_2_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T, _CharT) \ diff --git a/mozilla/xpcom/string/public/nsAReadableString.h b/mozilla/xpcom/string/public/nsAReadableString.h index 1eb71663943..5a60710fcf0 100644 --- a/mozilla/xpcom/string/public/nsAReadableString.h +++ b/mozilla/xpcom/string/public/nsAReadableString.h @@ -1271,6 +1271,22 @@ nsPromiseSubstring::GetReadableFragment( nsReadableFragment& aFrag +#ifdef NEED_CPP_DERIVED_TEMPLATE_OPERATORS + +#define NS_DEF_TEMPLATE_OPERATOR_PLUS + #define NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T) \ + template \ + inline \ + nsPromiseConcatenation \ + operator+( const _String1T& lhs, const _String2T& rhs ) \ + { \ + return nsPromiseConcatenation(lhs, rhs); \ + } + + NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseSubstring, nsPromiseSubstring) + NS_DEF_TEMPLATE_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseConcatenation, nsPromiseSubstring) + +#endif // NEED_CPP_DERIVED_TEMPLATE_OPERATORS // @@ -1410,6 +1426,8 @@ operator+( const basic_nsAReadableString& lhs, const basic_nsAReadableStr #define NS_DEF_DERIVED_STRING_OPERATOR_PLUS(_StringT, _CharT) \ NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(_StringT, _StringT, _CharT) \ + NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseSubstring<_CharT>, _StringT, _CharT) \ + NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(_StringT, nsPromiseSubstring<_CharT>, _CharT) \ NS_DEF_DERIVED_STRING_STRING_OPERATOR_PLUS(nsPromiseConcatenation<_CharT>, _StringT, _CharT) #define NS_DEF_2_STRING_STRING_OPERATOR_PLUS(_String1T, _String2T, _CharT) \