【发布时间】:2018-09-14 11:01:46
【问题描述】:
在boost::adaptors::filtered 中,过滤函数的使用方式如下:
std::vector<int> input;
input += 1,2,3,4,5,6,7,8,9;
boost::copy(
input | filtered(is_even()),
std::ostream_iterator<int>(std::cout, ","));
在这种情况下管道运算符的作用是什么?不是为std::vector 定义的,是不是超载了?如果是这样,如何在 boost 等库中有效地搜索此类运算符?
【问题讨论】:
-
我已经迷失在
input += 1,2,...。 -
@user463035818 感谢大家的支持,通常人们不得不害怕承认这样的事情。
-
有效搜索:IDE 救援,使用 C/C++ (ms-vscode.cpptools) 的 Visual Studio Code 在悬停时提供以下工具提示:
boost::range_detail::filtered_range<...> boost::range_detail::operator|<std::__1::vector<int, std::__1::allocator<int>>, is_even>(std::__1::vector<...> &r, const boost::range_detail::filter_holder<...> &f) +2 overloads