Fixed make_comparator metafunction
authorkhizmax <libcds.dev@gmail.com>
Tue, 21 Jul 2015 06:09:47 +0000 (09:09 +0300)
committerkhizmax <libcds.dev@gmail.com>
Tue, 21 Jul 2015 06:09:47 +0000 (09:09 +0300)
cds/intrusive/impl/multilevel_hashset.h
cds/opt/compare.h

index ecdf13e5249c9a02f78754001005766727b1e153..99dcdc83692ab2ddc6c3482f0d38672121021ba8 100644 (file)
@@ -88,7 +88,7 @@ namespace cds { namespace intrusive {
         typedef typename traits::hash_accessor hash_accessor; ///< Hash accessor functor
         static_assert(!std::is_same< hash_accessor, cds::opt::none >::value, "hash_accessor functor must be specified" );
 
-        /// Hash type
+        /// Hash type defined as \p hash_accessor return type
         typedef typename std::decay< 
             typename std::remove_reference<
                 decltype( hash_accessor()( std::declval<T>()) )
index 4be39579a9413ea3a60b95916796c0d8ecb53a22..d59de7ab69ef5c9f19a212715035d22fd0bf92ce 100644 (file)
@@ -166,7 +166,7 @@ namespace cds { namespace opt {
             }
         };
 
-        template <typename T, typename Traits, typename DefaultCmp = make_comparator_from_less< std::less<T>>::type >
+        template <typename T, typename Traits, typename DefaultCmp = typename make_comparator_from_less< std::less<T>>::type >
         struct make_comparator_from
         {
             typedef typename Traits::compare compare;
@@ -185,7 +185,12 @@ namespace cds { namespace opt {
 
 
         template <typename T, typename Traits, bool Forced = true >
-        using make_comparator = make_comparator_from< T, Traits, typename std::conditional< Forced, make_comparator_from_less< std::less<T>>, opt::none >::type >;
+        using make_comparator = make_comparator_from< T, Traits, 
+            typename std::conditional< 
+                Forced, 
+                typename make_comparator_from_less< std::less<T>>::type, 
+                opt::none 
+            >::type >;
 
         template <typename T, typename... Options>
         struct make_comparator_from_option_list