1.It's my classes:
struct SymbolToken {
std::string name;
};
struct QuoteToken {
};
struct ConstantToken {
int value;
};
2. I have a following typedef:
typedef std::variant<SymbolToken, QuoteToken, ConstantToken> Token;
3. I wanna write an assert:
assert(Token{ConstantToken{4}} == Token{ConstantToken{4}}) // fine
assert(Token{ConstantToken{3}} == Token{ConstantToken{4}}) // exception
How can I implement it?
Implement ==
on the contained types.
For Quote, always return true.
Probably also implement !=
as a matter of sanity.