Boost logo

Boost :

From: Guillaume Melquiond (guillaume.melquiond_at_[hidden])
Date: 2004-06-24 06:47:37


Hi,

Looking through the documentation of Boost.Variant (both 1.31 and cvs
versions), I see that "variant is itself LessThanComparable if and only
if every one of its bounded types meets the requirements of the
concept". The documentation directly hyper-links to the concept part of
Boost and this concept description explains that "LessThanComparable
types must have <, >, <=, and >= operators".

Unfortunately, boost::variant implementation only defines operator<. So
here we have a contradiction between the implementation and the
interface. The same kind of problem arises with operator!= and the
EqualityComparable concept.

I am not sure what the best solution is:
- define the missing operators in boost::variant,
- remove any reference to LessThanComparable and EqualityComparable
concepts from boost::variant documentation,
- correct the concepts so they only speak about operator< and
operator==.

The last solution corresponds to the way the concepts are defined in the
[lib.utilities] part of the C++ standard. But I would rather see the
missing operators defined in boost::variant if possible.

Regards,

Guillaume


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk