Boost logo

Boost :

From: Beman Dawes (beman_at_[hidden])
Date: 1999-11-12 18:28:28

Darin Adler wrote:

>Dave Abrahams mentioned his operators.h library.
>I believe that library provides a class template that implements
operator !=
>for a subclass based on the operator == in that subclass, using the
>"curiously-recurring" template pattern.
>This only works for member function versions of operator ==.
>But I haven't seen operators.h, I don't think.

Dave and I have been working on finishing touches for operators.hpp,
documentation, and a test+demonstration program. Should be ready for
posting sometime next week.

Here is the equality_comparable portion:

template <class T, class U = T>
class equality_comparable
     friend bool operator==( const U& y, const T& x ) { return x ==
y; }
     friend bool operator!=( const U& y, const T& x ) { return !(x ==
y); }
     friend bool operator!=( const T& y, const U& x ) { return !(y ==
x); }

template <class T>
class equality_comparable<T, T>
     friend bool operator!=( const T& x, const T& y ) { return !(x ==
y); }


Boost list run by bdawes at, gregod at, cpdaniel at, john at