Как сравнить std :: вариант пользовательских классов?

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

Как я могу это реализовать?

0

Решение

Воплощать в жизнь == на содержащиеся типы.

Для цитаты всегда возвращайте истину.

Возможно также реализовать != как вопрос здравомыслия.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]