std::find_if
的UnaryPredicate按值计算。为什么我们不能通过普遍引用获得它?即
template< class InputIt, class UnaryPredicate >
InputIt find_if( InputIt first, InputIt last,
UnaryPredicate&& p );
主要是出于历史原因,还是在这种情况下甚至在c ++ 11的情况下,也有理由更倾向于通过值传递而不是通用引用?
相关问题: Passing functor object by value vs by reference (C++), Why does std::find_if(first, last, p) not take predicate by reference?