// Copyright (C) 2007 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #undef DLIB_SET_UTILs_ABSTRACT_ #ifdef DLIB_SET_UTILs_ABSTRACT_ #include "../set.h" #include "../algs.h" namespace dlib { // ---------------------------------------------------------------------------------------- template < typename T, typename U > unsigned long set_intersection_size ( const T& a, const U& b ); /*! requires - T and U must both be implementations of set/set_kernel_abstract.h ensures - returns the number of elements that are in both set a and b !*/ // ---------------------------------------------------------------------------------------- template < typename T, typename U, typename V > void set_union ( const T& a, const U& b, V& u ); /*! requires - T, U, and V must all be implementations of set/set_kernel_abstract.h - the types of objects contained in these sets must be copyable ensures - #u == the union of a and b. That is, u contains all elements of a and all the elements of b. !*/ // ---------------------------------------------------------------------------------------- template < typename T, typename U, typename V > void set_intersection ( const T& a, const U& b, V& i ); /*! requires - T, U, and V must all be implementations of set/set_kernel_abstract.h - the types of objects contained in these sets must be copyable ensures - #i == the intersection of a and b. That is, i contains all elements of a that are also in b. !*/ // ---------------------------------------------------------------------------------------- template < typename T, typename U, typename V > void set_difference ( const T& a, const U& b, V& d ); /*! requires - T, U, and V must all be implementations of set/set_kernel_abstract.h - the types of objects contained in these sets must be copyable ensures - #d == the difference of a and b. That is, d contains all elements of a that are NOT in b. !*/ // ---------------------------------------------------------------------------------------- } #endif // DLIB_SET_UTILs_ABSTRACT_