forked from boostorg/iterator
Avoid some Borland bugs by defining operators explicitly rather than
using partially_ordered<...> to generate them. [SVN r29757]
This commit is contained in:
@ -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>
|
||||||
|
Reference in New Issue
Block a user