假设我想重载 operator<<
对于 optional<T>
类模板。我将如何打印“缺失值”,以及如何打印“真实值”x?
none
some x
或
[]
[x]
或者我应该为第一种情况和 x
不打印任何内容吗?第二个?这通常是如何处理的?
最佳答案
我喜欢打印 None
和 Some x
的选项。我认为这立即描述了正在发生的事情(特别是对于熟悉 Haskell 的人)。
就个人而言,我不会使用 []
和 [x]
替代方案,因为许多语言使用方括号来表示某种列表。如果我看到该输出,我会立即认为打印了一个列表,而不是可选类型。
关于c++ - 是否有打印可选值的约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998036/