std:任何-为什么它缺少这么多运算符



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

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

任何想法都值得赞赏。

因为完全通用(这正是std::any所追求的(,这些运算符没有意义。关于你的具体例子;

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

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

相关内容

最新更新