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:
So
variantalready 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.