15 #ifndef LLVM_ADT_SETOPERATIONS_H
16 #define LLVM_ADT_SETOPERATIONS_H
22 template <
class S1Ty,
class S2Ty>
26 for (
typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end();
28 if (S1.insert(*SI).second)
39 template <
class S1Ty,
class S2Ty>
41 for (
typename S1Ty::iterator
I = S1.begin();
I != S1.end();) {
42 const typename S1Ty::key_type &E = *
I;
44 if (!S2.count(E)) S1.erase(E);
50 template <
class S1Ty,
class S2Ty>
53 for (
typename S1Ty::const_iterator SI = S1.begin(), SE = S1.end();
62 template <
class S1Ty,
class S2Ty>
64 for (
typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end();
S1Ty set_difference(const S1Ty &S1, const S2Ty &S2)
void set_intersect(S1Ty &S1, const S2Ty &S2)
void set_subtract(S1Ty &S1, const S2Ty &S2)
bool set_union(S1Ty &S1, const S2Ty &S2)