summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/utilities/utilities.hpp25
-rw-r--r--test/test_utilities.hpp17
2 files changed, 25 insertions, 17 deletions
diff --git a/src/utilities/utilities.hpp b/src/utilities/utilities.hpp
index a4f4fab0..08b165b9 100644
--- a/src/utilities/utilities.hpp
+++ b/src/utilities/utilities.hpp
@@ -20,6 +20,7 @@
#include <functional>
#include <complex>
#include <random>
+#include <algorithm>
#ifdef OPENCL_API
#include "clpp11.hpp"
@@ -258,6 +259,30 @@ std::string ToString(T value);
// =================================================================================================
+// String splitting by a delimiter
+template<typename Out>
+void split(const std::string &s, char delimiter, Out result) {
+ std::stringstream ss(s);
+ std::string item;
+ while (std::getline(ss, item, delimiter)) {
+ *(result++) = item;
+ }
+}
+
+// See above
+inline std::vector<std::string> split(const std::string &s, char delimiter) {
+ std::vector<std::string> elements;
+ split(s, delimiter, std::back_inserter(elements));
+ return elements;
+}
+
+// String character removal
+inline void remove_character(std::string &str, char to_be_removed) {
+ str.erase(std::remove(str.begin(), str.end(), to_be_removed), str.end());
+}
+
+// =================================================================================================
+
// Parses command-line and environmental-variable arguments into a std::vector of strings
std::vector<std::string> RetrieveCommandLineArguments(int argc, char *argv[]);
diff --git a/test/test_utilities.hpp b/test/test_utilities.hpp
index b8bf3ddf..1f096310 100644
--- a/test/test_utilities.hpp
+++ b/test/test_utilities.hpp
@@ -116,23 +116,6 @@ Buffer<T> CreateInvalidBuffer(const Context& context, const size_t size) {
// =================================================================================================
-template<typename Out>
-void split(const std::string &s, char delimiter, Out result) {
- std::stringstream ss(s);
- std::string item;
- while (std::getline(ss, item, delimiter)) {
- *(result++) = item;
- }
-}
-
-inline std::vector<std::string> split(const std::string &s, char delimiter) {
- std::vector<std::string> elements;
- split(s, delimiter, std::back_inserter(elements));
- return elements;
-}
-
-// =================================================================================================
-
using BestParameters = std::unordered_map<std::string,size_t>;
using BestParametersCollection = std::unordered_map<std::string, BestParameters>;