bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

oset-c++, omap-c++: Remove restriction for search_atleast method


From: Bruno Haible
Subject: oset-c++, omap-c++: Remove restriction for search_atleast method
Date: Sun, 02 Aug 2020 20:28:06 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-186-generic; KDE/5.18.0; x86_64; ; )

The threshold argument in the search_atleast method is meant to be unrelated
to the ELTYPE or KEYTYPE types, respectively.


2020-08-02  Bruno Haible  <bruno@clisp.org>

        oset-c++, omap-c++: Remove restriction for search_atleast method.
        * lib/gl_oset.hh (gl_OSet::search_atleast): Allow the threshold to be of
        a different type than the element.
        * lib/gl_omap.hh (gl_OMap::search_atleast): Allow the threshold to be of
        a different type than the key.

diff --git a/lib/gl_omap.hh b/lib/gl_omap.hh
index 1f892e4..903befb 100644
--- a/lib/gl_omap.hh
+++ b/lib/gl_omap.hh
@@ -89,8 +89,9 @@ public:
      THRESHOLD is defined by the THRESHOLD_FN.
      Returns true and stores the found pair in KEY and VALUE if found.
      Otherwise returns false.  */
-  bool search_atleast (bool (*threshold_fn) (KEYTYPE * /*key*/, KEYTYPE * 
/*threshold*/),
-                       KEYTYPE * threshold,
+  template <typename THT>
+  bool search_atleast (bool (*threshold_fn) (KEYTYPE * /*key*/, THT * 
/*threshold*/),
+                       THT * threshold,
                        KEYTYPE *& key, VALUETYPE *& value) const
   { return gl_omap_search_atleast (_ptr, 
reinterpret_cast<gl_mapkey_threshold_fn>(threshold_fn), threshold, &key, 
&value); }
 
diff --git a/lib/gl_oset.hh b/lib/gl_oset.hh
index 5a72476..157b8b9 100644
--- a/lib/gl_oset.hh
+++ b/lib/gl_oset.hh
@@ -80,8 +80,9 @@ public:
      by the THRESHOLD_FN.
      Returns true and store the found element in ELT if found, otherwise 
returns
      false.  */
-  bool search_atleast (bool (*threshold_fn) (ELTYPE * /*elt*/, ELTYPE * 
/*threshold*/),
-                       ELTYPE * threshold,
+  template <typename THT>
+  bool search_atleast (bool (*threshold_fn) (ELTYPE * /*elt*/, THT * 
/*threshold*/),
+                       THT * threshold,
                        ELTYPE *& elt) const
   { return gl_oset_search_atleast (_ptr, 
reinterpret_cast<gl_setelement_threshold_fn>(threshold_fn), threshold, &elt); }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]