You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C23标准中提议的_Either类型究竟是什么?

关于C23提议的_Either类型的说明

你提到的C23提案n3003(第一页)和n2366(第七页)确实只是顺带提及了_Either类型,目前公开的C23工作草案以及其他相关提案里,都没有收录这个类型的正式定义或进一步讨论内容——你并没有遗漏关键的公开提及资料。

_Either是一个提议的和类型(功能类似Rust的枚举类型),设计目的是让C语言支持二选一的不同类型值存储与处理。它被定位为编译期构造,核心特性是强制开发者在使用该类型的值时,必须显式检查并处理两种可能的类型分支,以此避免因未处理分支引发的逻辑错误。

关于它的实现方式,结合提案的零散描述可以推测:

  • 编译器会在编译期跟踪_Either实例当前存储的是左分支还是右分支类型的值
  • 若开发者使用时未覆盖两种分支情况,编译器会直接抛出错误
  • 底层大概率会以带标签的联合体(tagged union)作为存储基础,但上层会通过语法糖和编译期检查来简化使用流程,同时保证类型安全性

内容的提问来源于stack exchange,提问作者William Ryman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 13:34:58