【发布时间】:2014-11-24 15:14:07
【问题描述】:
我正在使用 C++98,我想绑定 std::max。但我需要一个函子对象来与std::bind1st 一起使用。
我试过只使用std::pointer_to_binary_function,但问题似乎是我无法用std::max制作仿函数:https://stackoverflow.com/a/12350574/2642059
我也尝试过std::ptr_fun,但我得到了类似的错误。
【问题讨论】:
-
std::max关于什么类型?在 C++98 中,我认为std::bind1st不适用于编译时多态函数对象,这是将所有std::max重载完全包装到单个函数对象中的唯一方法。 -
如果这样可以找到数组中的最大元素?也许你可以使用
std::max_element -
@Yakk 我特别需要它用于
ints,但我想知道将来如何为其他类型执行此操作。我认为通过std::max<int>编译器会创建函数并且它的行为就像一个常规函数指针? -
@NeilKirk 我主要想在
std::accumulate和std::transform中使用它。 -
如果你只有 C++98,尝试使用花哨的函数式编程恐怕只是一种偏头痛的练习。
标签: c++ max bind functor c++98