| 427 | |
| 428 | template <typename T> |
| 429 | void SetOperationOp<T>::ApplySetOperation(const std::set<T>& set1, |
| 430 | const std::set<T>& set2, |
| 431 | std::set<T>* result) const { |
| 432 | switch (set_operation_) { |
| 433 | case A_MINUS_B: |
| 434 | std::set_difference(set1.begin(), set1.end(), set2.begin(), set2.end(), |
| 435 | std::inserter(*result, result->begin())); |
| 436 | break; |
| 437 | case B_MINUS_A: |
| 438 | std::set_difference(set2.begin(), set2.end(), set1.begin(), set1.end(), |
| 439 | std::inserter(*result, result->begin())); |
| 440 | break; |
| 441 | case INTERSECTION: |
| 442 | std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), |
| 443 | std::inserter(*result, result->begin())); |
| 444 | break; |
| 445 | case UNION: |
| 446 | std::set_union(set1.begin(), set1.end(), set2.begin(), set2.end(), |
| 447 | std::inserter(*result, result->begin())); |
| 448 | break; |
| 449 | } |
| 450 | } |
| 451 | |
| 452 | template <typename T> |
| 453 | void SetDifference(const std::unordered_set<T>& set1, |
nothing calls this directly
no test coverage detected