如何比较自定义 类 的 std::variant?
How to compare std::variant of custom classes?
1.It 是我的 类:
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
我该如何实施?
对包含的类型实施 ==
。
对于报价,始终return正确。
出于理智考虑,可能还会实施 !=
。
1.It 是我的 类:
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
我该如何实施?
对包含的类型实施 ==
。
对于报价,始终return正确。
出于理智考虑,可能还会实施 !=
。