variant
可替代boost::variant的仅头文件C++11/C++14库,以类型安全方式保存多种类型之一,例如结果或错误。
挑一个能复现的小 issue,用 AI 编程助手把它修好。
分享到 X许可证: BSD-3-Clause
概述
Mapbox Variant 是面向 C++11 和 C++14 的仅头文件库,可替代 boost::variant。它以类型安全的方式持有多种类型中的一种,例如结果或错误二选一的 API 响应。它提供基于 lambda 的模式匹配、访问器,以及用于 JSON 这类树形结构的递归包装类型,且没有任何依赖。
主要特点
- 类型安全的 variant,表示和类型或可辨识联合
- match() 接收多个 lambda 并检查是否覆盖所有类型
- apply_visitor 与 get() 用于访问或取出值
- recursive_wrapper 可表达 JSON 树等递归类型
适用场景
适合想使用 variant 但不想依赖 Boost 的 C++11 或 C++14 项目。它以与 boost::variant 接口兼容为目标,但只实现实际需要的功能。
- 上游仓库
- mapbox/variant
- GitHub 上的 fork
- Guo-astro/variant
- 上游 Star 数
- 384
- 分类
- 开发者工具与基础设施
- 编程语言
- C++
- 许可证
- BSD-3-Clause
- Fork 时间
- 2020-11-01
- 同步状态
- 已同步上次同步 2026-10-19
同分类更多: 开发者工具与基础设施
这是一个用于紫微斗数排盘和查阅传统资料的开源TypeScript引擎,可用于开发排盘与解读工具。
Fork 时间 2026-10-18上次同步 2026-10-19许可证: MIT开发者工具与基础设施GitHub
ImHex是一款用于检查和编辑二进制文件的十六进制编辑器。逆向工程师、程序员和取证分析人员可以搜索和修改字节,或使用模式语言描述文件结构。
Fork 时间 2026-10-17上次同步 2026-10-19许可证: GPL-2.0开发者工具与基础设施GitHub
Numa是面向本地开发和隐私的便携式DNS解析器。它可拦截广告、为本地服务命名为frontend.numa,并在不依赖云服务的情况下运行DNS。
Fork 时间 2026-10-17上次同步 2026-10-19许可证: MIT开发者工具与基础设施GitHub
Handwired将常规JavaScript逻辑转换为可微分的神经网络式计算,并可通过JavaScript或WebGPU以矩阵运算执行,适合探索传统代码的GPU运行与优化。
Fork 时间 2026-10-16上次同步 2026-10-19许可证: MIT开发者工具与基础设施GitHub