gpt4 book ai didi

c++ - 为什么允许 std::variant 多次持有同一个类型?

转载 作者:行者123 更新时间:2023-12-04 11:06:52 26 4
gpt4 key购买 nike

std::variant 的用例可以是什么?多次持有同一种类型?
引用 https://en.cppreference.com/w/cpp/utility/variant
只有开始调用std::get<T>(v) 才能发现问题。 .

最佳答案

假设我们想要表示一个可以是关键字、标识符或符号的标记。因此,一种可能的实现是:

enum TokenType : std::size_t {
Keyword = 0, Identifier = 1, Symbol = 2
};

using Token = std::variant<std::string, std::string, char>;
现在可以使用,例如:
std::get<TokenType::Keyword>(token)
访问替代方案。
这是否是一个好主意当然还有待商榷,但它确实表明了这种用例的存在。

关于c++ - 为什么允许 std::variant 多次持有同一个类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68109028/

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