]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/str_list: get_str_set(), add second param for template
authorYehuda Sadeh <yehuda@redhat.com>
Wed, 1 Aug 2018 00:44:47 +0000 (17:44 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Tue, 11 Dec 2018 08:10:43 +0000 (00:10 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/common/str_list.cc
src/include/str_list.h

index 33a1157d1349e963bf7abd0302123f4fee549fe7..2c6a397d2e7efe1809fec244e789689761a1b013 100644 (file)
@@ -75,10 +75,3 @@ void get_str_set(const string& str, set<string>& str_set)
   const char *delims = ";,= \t";
   get_str_set(str, delims, str_set);
 }
-
-set<string> get_str_set(const string& str, const char *delims)
-{
-  set<string> result;
-  get_str_set(str, delims, result);
-  return result;
-}
index e4cd7bbbd31b48a1a4b44e6af053e276d8273d32..518db1cac713a3cb697e4ed7a5e6e1f3fbe47905 100644 (file)
@@ -86,13 +86,22 @@ extern void get_str_set(const std::string& str,
  * @param [in] delims characters used to split **str**
  * @param [out] str_list Set modified containing str after it has been split
 **/
-extern void get_str_set(const std::string& str,
-                        const char *delims,
-                       std::set<std::string>& str_list);
+template<class Compare = std::less<std::string> >
+void get_str_set(const std::string& str,
+                 const char *delims,
+                 std::set<std::string, Compare>& str_list)
+{
+  str_list.clear();
+  for_each_substr(str, delims, [&str_list] (auto token) {
+                  str_list.emplace(token.begin(), token.end());
+                  });
+}
 
 std::set<std::string> get_str_set(const std::string& str,
                                   const char *delims = ";,= \t");
 
+
+
 /**
  * Return a String containing the vector **v** joined with **sep**
  *