Avoid some Borland bugs by defining operators explicitly rather than

using partially_ordered<...> to generate them.


[SVN r29757]
This commit is contained in:
Dave Abrahams
2005-06-23 18:20:37 +00:00
parent df49ae74e0
commit 7a43350655

View File

@ -240,8 +240,7 @@ namespace detail
{ {
template<class Derived, class Value> template<class Derived, class Value>
struct archetype struct archetype
: public partially_ordered<traversal_archetype_<Derived, Value, random_access_traversal_tag> >, : public traversal_archetype_<Derived, Value, bidirectional_traversal_tag>
public traversal_archetype_<Derived, Value, bidirectional_traversal_tag>
{ {
Derived& operator+=(std::ptrdiff_t) { return static_object<Derived>::get(); } Derived& operator+=(std::ptrdiff_t) { return static_object<Derived>::get(); }
Derived& operator-=(std::ptrdiff_t) { return static_object<Derived>::get(); } Derived& operator-=(std::ptrdiff_t) { return static_object<Derived>::get(); }
@ -272,6 +271,21 @@ namespace detail
traversal_archetype_<Derived, Value, random_access_traversal_tag> const&) traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
{ return true; } { return true; }
template <class Derived, class Value>
bool operator>(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
{ return true; }
template <class Derived, class Value>
bool operator<=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
{ return true; }
template <class Derived, class Value>
bool operator>=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,
traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)
{ return true; }
struct bogus_type; struct bogus_type;
template <class Value> template <class Value>