塞尔塔 variant和optional C ++ 17零开销语法糖。 目录 总览 std::variant和std::optional被引入C ++ 17的标准库。 它们是求和类型,可以大大提高类型的安全性和性能。 但是,它们存在一些问题: 一些常见操作(例如访问)的语法不尽如人意,并且需要大量样板。 定义和使用递归variant或optional类型并非易事,并且需要大量样板。 std::optional不支持访问。 std::variant和std::optional的接口与其他一些常用的ADT实现不同-互操作性需要大量样板。 scelta旨在通过提供零开销的语法糖来解决所有