0

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?

1 Answers1

2

Implement == on the contained types.

For Quote, always return true.

Probably also implement != as a matter of sanity.

Yakk - Adam Nevraumont
  • 262,606
  • 27
  • 330
  • 524