C++ 升压变量比较器

C++ 升压变量比较器,c++,comparator,variant,C++,Comparator,Variant,我需要比较两个类型为boost::variant的变量,并比较变量内部的值是否相等 实现这一点的最佳方式是什么 我的变体如下所示: typedef boost::variant<int, float, double, long, bool, std::string, boost::posix_time::ptime> variant; typedef boost::variant variant; 来自: EqualityComparable:当且仅当其每一个有界类型都满足概念的要

我需要比较两个类型为
boost::variant
的变量,并比较变量内部的值是否相等

实现这一点的最佳方式是什么

我的变体如下所示:

typedef boost::variant<int, float, double, long, bool, std::string, boost::posix_time::ptime> variant;
typedef boost::variant variant;
来自:

EqualityComparable:当且仅当其每一个有界类型都满足概念的要求时,variant本身就是EqualityComparable

因此
variant
已经实现了相等,如果所有类型都是可比较的。因此,在您的情况下,您应该能够只使用操作符
=


通常,您可以通过创建一个包含对其中一个参数的引用的一元访问者并将访问者应用于第二个参数来实现二进制访问者。

您确定您真的需要此变量吗?是的,我确实需要此变量……虽然这不是一个真正的问题,但boost 1.45和VC100“==”可以工作,但“!=”如果出现编译器错误(“未找到运算符…”),则不工作。