MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / priv_set_difference_back

Function priv_set_difference_back

extern/boost/boost/container/vector.hpp:2340–2371  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2338
2339 template<class InputIt, class Compare>
2340 void priv_set_difference_back(InputIt first1, InputIt last1, Compare comp)
2341 {
2342 T * old_first2 = this->priv_raw_begin();
2343 T * first2 = old_first2;
2344 T * last2 = this->priv_raw_end();
2345
2346 while (first1 != last1) {
2347 if (first2 == last2){
2348 this->insert(this->cend(), first1, last1);
2349 return;
2350 }
2351
2352 if (comp(*first1, *first2)) {
2353 this->emplace_back(*first1);
2354 T * const raw_begin = this->priv_raw_begin();
2355 if(old_first2 != raw_begin)
2356 {
2357 //Reallocation happened, update range
2358 first2 = raw_begin + (first2 - old_first2);
2359 last2 = raw_begin + (last2 - old_first2);
2360 old_first2 = raw_begin;
2361 }
2362 ++first1;
2363 }
2364 else {
2365 if (!comp(*first2, *first1)) {
2366 ++first1;
2367 }
2368 ++first2;
2369 }
2370 }
2371 }
2372
2373 template<class FwdIt, class Compare>
2374 BOOST_CONTAINER_FORCEINLINE void priv_merge_in_new_buffer(FwdIt, size_type, Compare, version_0)

Callers

nothing calls this directly

Calls 3

emplace_backMethod · 0.80
insertMethod · 0.45
cendMethod · 0.45

Tested by

no test coverage detected