所以我遇到了这个问题:我需要用std::vector<int>它之前的最小值(包括在内)替换每个元素.
自然std::partial_sum想到的-如果我能通过std::min的BinaryOp,它会做的工作.
事实证明我不能这样做,因为它std::min<int>是一个重载函数 - 它适用于两者int,initializer_list<int>并且partial_sum模板不能用未知类型实例化.
通常这是通过一个模板类解决operator(),像std::plus<void>等,但标准库似乎并不有一个min和max.
我觉得我要么必须实现自己的T min<T>(T,T),这将是一个完全克隆,std::min除了没有initializer_list超载,或实现我自己的class min类似std::plus.两者都觉得有点不对,因为人们会期望标准库有这样一个基本的东西,而且基本的东西通常很难实现:)
所以这是我的问题:
initializer_list过载之后,假设这成为C++ 11中的问题是否正确min?那么C++ 11打破了依赖于显式实例化的代码std::min?谢谢!