1. Это мои занятия:
struct SymbolToken {
std::string name;
};
struct QuoteToken {
};
struct ConstantToken {
int value;
};
2. У меня есть следующий typedef:
typedef std::variant<SymbolToken, QuoteToken, ConstantToken> Token;
3. Я хочу написать утверждение:
assert(Token{ConstantToken{4}} == Token{ConstantToken{4}}) // fine
assert(Token{ConstantToken{3}} == Token{ConstantToken{4}}) // exception
Как я могу это реализовать?
Воплощать в жизнь ==
на содержащиеся типы.
Для цитаты всегда возвращайте истину.
Возможно также реализовать !=
как вопрос здравомыслия.
Других решений пока нет …