gpt4 book ai didi

c++ - 如何比较自定义类的 std::variant?

转载 作者:行者123 更新时间:2023-11-28 04:30:23 30 4
gpt4 key购买 nike

1.这是我的类(class):

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

我该如何实现?

最佳答案

在包含的类型上实现 ==

对于 Quote,始终返回 true。

出于理智考虑,可能还会实现 !=

关于c++ - 如何比较自定义类的 std::variant?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53111778/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com