allow clients of SmallSet to specify their own comparison function for the set.
authorChris Lattner <sabre@nondot.org>
Thu, 5 Jan 2012 17:35:07 +0000 (17:35 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 5 Jan 2012 17:35:07 +0000 (17:35 +0000)
Patch by Stepan Dyatkovskiy!

llvm-svn: 147607

llvm/include/llvm/ADT/SmallSet.h

index d03f1be..cd117f5 100644 (file)
@@ -27,13 +27,13 @@ namespace llvm {
 ///
 /// Note that this set does not provide a way to iterate over members in the
 /// set.
-template <typename T, unsigned N>
+template <typename T, unsigned N,  typename C = std::less<T> >
 class SmallSet {
   /// Use a SmallVector to hold the elements here (even though it will never
   /// reach its 'large' stage) to avoid calling the default ctors of elements
   /// we will never use.
   SmallVector<T, N> Vector;
-  std::set<T> Set;
+  std::set<T, C> Set;
   typedef typename SmallVector<T, N>::const_iterator VIterator;
   typedef typename SmallVector<T, N>::iterator mutable_iterator;
 public: