gpt4 book ai didi

c++ - 代数数据类型的惯用现代 C++ 是什么?

转载 作者:IT老高 更新时间:2023-10-28 12:48:25 24 4
gpt4 key购买 nike

例如,假设您想在 C++ 中实现一个电子表格单元格。单元格可以是字符串、数字,也可以是空的。忽略其他情况,比如它是一个公式。

在 Haskell 中,您可能会执行以下操作:

data Cell = CellStr String | CellDbl Double | None

在 C++ 中,当前的“最佳实践”是什么?在具有类型指示符或其他内容的结构中使用 union ?

最佳答案

struct empty_type {};
using cell_type = boost::variant<std::string, double, empty_type>;

然后你会对单元​​格做一些事情:

boost::apply_visitor(some_visitor(), cell);

关于c++ - 代数数据类型的惯用现代 C++ 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283443/

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