53inline bool includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,
54 InputIterator2 last2, Compare comp) {
55 return std::includes(first1, last1, first2, last2,
56 std::bind(comp, std::placeholders::_1, std::placeholders::_2));
88inline OutputIterator
set_union(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,
89 InputIterator2 last2, OutputIterator result, Compare comp) {
90 return std::set_union(first1, last1, first2, last2, result,
91 std::bind(comp, std::placeholders::_1, std::placeholders::_2));
100inline OutputIterator
set_union(
const InputRange1& range1,
const InputRange2& range2,
101 OutputIterator result, Compare comp) {
102 return adobe::set_union(boost::begin(range1), boost::end(range1), boost::begin(range2),
103 boost::end(range2), result, comp);
125 InputIterator2 first2, InputIterator2 last2,
126 OutputIterator result, Compare comp) {
127 return std::set_intersection(first1, last1, first2, last2, result,
128 std::bind(comp, std::placeholders::_1, std::placeholders::_2));
162 InputIterator2 first2, InputIterator2 last2,
163 OutputIterator result, Compare comp) {
164 return std::set_difference(first1, last1, first2, last2, result,
165 std::bind(comp, std::placeholders::_1, std::placeholders::_2));
174inline OutputIterator
set_difference(
const InputRange1& range1,
const InputRange2& range2,
175 OutputIterator result, Compare comp) {
177 boost::end(range2), result, comp);
199 InputIterator2 first2, InputIterator2 last2,
200 OutputIterator result, Compare comp) {
201 return std::set_symmetric_difference(
202 first1, last1, first2, last2, result,
203 std::bind(comp, std::placeholders::_1, std::placeholders::_2));