【发布时间】:2014-03-28 20:58:27
【问题描述】:
今天we discovered 用于乘法和除法的函子称为std::multiplies 和std::divides,而不是例如std::multiply 和std::divide。
考虑到std::plus 和std::minus 的表述方式不同,这至少可以说令人惊讶。
这种差异有什么特殊原因吗?
【问题讨论】:
-
是否存在任何形式的
std::add或std::subtract? -
另外,我自己做了,因为委员会目前正在研究这个主题:gist.github.com/ThePhD/9842898
-
请注意,这些在 C++14 中还没有引入,它们已经存在了很长时间。
-
你为什么感到惊讶?它们现在都以
s结尾——除了negate,害群之马。这种方式更加一致;) -
@ThePhD:void 特化是 C++14 中的新特性。选择这种技术是为了避免破坏使用这些模板的现有代码并避免引入新名称。鉴于这两个设计目标,void 专业化解决方案非常巧妙。
标签: c++ library-design