【发布时间】:2014-03-16 20:49:47
【问题描述】:
template<typename InputIterator, typename Predicate>
inline InputIterator
find_if(InputIterator first, InputIterator last, Predicate pred, input_iterator_tag)
{
while (first != last && !bool(pred(*first)))
++first;
return first;
}
我在 GCC 4.7.0 附带的 C++ 标准库实现的源代码中遇到了this snippet。这是输入迭代器的find_if 的特化。我清理了前导下划线以使其更具可读性。
他们为什么在谓词上使用bool 强制转换?
【问题讨论】:
标签: c++ gcc casting standard-library