升壓::變體定義了operator <如下:如何改變升壓的行爲::變體操作者<
如果其中()== rhs.which()然後:content_this < content_rhs,其中 content_this是* this的內容,content_rhs是 rhs的內容。否則:哪個()< rhs.which()。
這不是我想要的,因爲我想對比一下<。舉例來說,如果我有這樣的一個變體:
typedef boost::variant<int, double, std::string> DataType;
我想要的數據類型(1)<數據類型(2.0)接替,但數據類型(1)<數據類型( 「2」)拋出異常。有什麼辦法可以做到這一點?
我不能定義
bool operator < (const Field& lhs, const Field& rhs)
,因爲它會與變異類中定義成員運算符<衝突。
我可以定義一個static_visitor,但我想知道是否有反正超負荷運營商<。
無論你使用什麼,比較那些應該有一個可選的自定義比較。 – chris 2015-02-06 17:56:11
不幸的是'variant :: operator <'是一個成員函數。 – sbabbi 2015-02-06 18:53:56