1

我正在考虑将 std::any 用于类型擦除作为我正在构建的接口的一部分,我想知道为什么它缺少这么多运算符,比如“+”、“==”。我在这里修改了 Coliru ,在那里我将 std::any 扩展为可汇总和可打印到 ostream 中。这仅适用于现在持有 double 的任何人,但这个概念有效,它只是需要完成以支持所有基本数字数据类型(只要 lhs 和 rhs 是操作数的相同类型)的实现。

考虑到我能够在这么短的时间内扩展任何类似的东西,为什么 stl 实现在操作数方面如此有限?

任何想法表示赞赏。

4

1 回答 1

3

因为总的来说(这是std::any渴望的)这些运算符没有意义。关于你的具体例子;

+: 对于类似日期的对象没有意义。

==: 对只写对象没有意义。

于 2018-12-06T12:53:39.727 回答