1.这是我的类(class):
struct SymbolToken {
std::string name;
};
struct QuoteToken {
};
struct ConstantToken {
int value;
};
2。我有以下类型定义:
typedef std::variant<SymbolToken, QuoteToken, ConstantToken> Token;
3。我想写一个断言:
assert(Token{ConstantToken{4}} == Token{ConstantToken{4}}) // fine
assert(Token{ConstantToken{3}} == Token{ConstantToken{4}}) // exception
我该如何实现?
最佳答案
在包含的类型上实现 ==
。
对于 Quote,始终返回 true。
出于理智考虑,可能还会实现 !=
。
关于c++ - 如何比较自定义类的 std::variant?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53111778/