I need to compare two variables of type boost::variant
and I want to compare the values inside the variant for equality.
What would be the best way to implement this?
My variant looks like this:
typedef boost::variant<int, float, double, long, bool, std::string, boost::posix_time::ptime> variant;
From variant docs:
EqualityComparable: variant is itself EqualityComparable if and only if every one of its bounded types meets the requirements of the concept.
So variant
already implements equality if all the types are comparable. So in your case you should be able to just use the operator ==
.
In general, you can implement a binary visitor by creating a unary visitor that encloses a reference to one of the arguments and applying the visitor to the second argument.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With