added macro code to help define more comparison operators. Got rid of |typename|. We can live with the warnings, maybe; but windows can't digest it in this context.

git-svn-id: svn://10.0.0.236/trunk@69744 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
scc%netscape.com
2000-05-15 05:14:40 +00:00
parent 2cdb288556
commit d282389c10
3 changed files with 54 additions and 27 deletions

View File

@@ -458,12 +458,21 @@ operator!=( const nsReadingIterator<CharT>& lhs, const nsReadingIterator<CharT>&
return PRBool(Compare(lhs, NS_READABLE_CAST(_CharT, rhs)) comp 0); \
}
#define NS_DEF_1_STRING_STRING_COMPARISON_OPERATOR(comp, _StringT, _CharT) \
inline \
PRBool \
operator comp( const _StringT& lhs, const _StringT& rhs ) \
{ \
return PRBool(Compare(NS_READABLE_CAST(_CharT, lhs), NS_READABLE_CAST(_CharT, rhs)) comp 0); \
}
#define NS_DEF_2_TEMPLATE_STRING_COMPARISON_OPERATORS(comp, _StringT, _CharT) \
template <class _CharT> NS_DEF_1_STRING_PTR_COMPARISON_OPERATOR(comp, _StringT, _CharT) \
template <class _CharT> NS_DEF_1_PTR_STRING_COMPARISON_OPERATOR(comp, _StringT, _CharT)
#define NS_DEF_2_STRING_COMPARISON_OPERATORS(comp, _StringT, _CharT) \
NS_DEF_1_STRING_PTR_COMPARISON_OPERATOR(comp, _StringT, _CharT) \
#define NS_DEF_3_STRING_COMPARISON_OPERATORS(comp, _StringT, _CharT) \
NS_DEF_1_STRING_STRING_COMPARISON_OPERATOR(comp, _StringT, _CharT) \
NS_DEF_1_STRING_PTR_COMPARISON_OPERATOR(comp, _StringT, _CharT) \
NS_DEF_1_PTR_STRING_COMPARISON_OPERATOR(comp, _StringT, _CharT)
#define NS_DEF_TEMPLATE_STRING_COMPARISON_OPERATORS(_StringT, _CharT) \
@@ -475,12 +484,12 @@ operator!=( const nsReadingIterator<CharT>& lhs, const nsReadingIterator<CharT>&
NS_DEF_2_TEMPLATE_STRING_COMPARISON_OPERATORS(> , _StringT, _CharT)
#define NS_DEF_STRING_COMPARISON_OPERATORS(_StringT, _CharT) \
NS_DEF_2_STRING_COMPARISON_OPERATORS(!=, _StringT, _CharT) \
NS_DEF_2_STRING_COMPARISON_OPERATORS(< , _StringT, _CharT) \
NS_DEF_2_STRING_COMPARISON_OPERATORS(<=, _StringT, _CharT) \
NS_DEF_2_STRING_COMPARISON_OPERATORS(==, _StringT, _CharT) \
NS_DEF_2_STRING_COMPARISON_OPERATORS(>=, _StringT, _CharT) \
NS_DEF_2_STRING_COMPARISON_OPERATORS(> , _StringT, _CharT)
NS_DEF_3_STRING_COMPARISON_OPERATORS(!=, _StringT, _CharT) \
NS_DEF_3_STRING_COMPARISON_OPERATORS(< , _StringT, _CharT) \
NS_DEF_3_STRING_COMPARISON_OPERATORS(<=, _StringT, _CharT) \
NS_DEF_3_STRING_COMPARISON_OPERATORS(==, _StringT, _CharT) \
NS_DEF_3_STRING_COMPARISON_OPERATORS(>=, _StringT, _CharT) \
NS_DEF_3_STRING_COMPARISON_OPERATORS(> , _StringT, _CharT)
NS_DEF_TEMPLATE_STRING_COMPARISON_OPERATORS(basic_nsAReadableString<CharT>, CharT)
@@ -1093,7 +1102,7 @@ copy_string_backward( InputIterator first, InputIterator last, OutputIterator re
NS_ASSERTION(lengthToCopy, "|copy_string_backward| will never terminate");
nsCharTraits<typename OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);
nsCharTraits<OutputIterator::value_type>::move(result.operator->()-lengthToCopy, last.operator->()-lengthToCopy, lengthToCopy);
last -= PRInt32(lengthToCopy);
result -= PRInt32(lengthToCopy);