diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/split.cpp | 18 | ||||
-rw-r--r-- | src/utils/split.hpp | 10 |
2 files changed, 19 insertions, 9 deletions
diff --git a/src/utils/split.cpp b/src/utils/split.cpp new file mode 100644 index 0000000..82852ee --- /dev/null +++ b/src/utils/split.cpp @@ -0,0 +1,18 @@ +#include <utils/split.hpp> + +namespace utils +{ + std::vector<std::string> split(const std::string &s, const char delim, const bool allow_empty) + { + std::vector<std::string> ret; + std::stringstream ss(s); + std::string item; + while (std::getline(ss, item, delim)) + { + if (item.empty() && !allow_empty) + continue ; + ret.emplace_back(std::move(item)); + } + return ret; + } +} diff --git a/src/utils/split.hpp b/src/utils/split.hpp index 0067131..9fee90a 100644 --- a/src/utils/split.hpp +++ b/src/utils/split.hpp @@ -7,15 +7,7 @@ namespace utils { - std::vector<std::string> split(const std::string &s, const char delim) - { - std::vector<std::string> ret; - std::stringstream ss(s); - std::string item; - while (std::getline(ss, item, delim)) - ret.emplace_back(std::move(item)); - return ret; - } + std::vector<std::string> split(const std::string &s, const char delim, const bool allow_empty=true); } #endif // SPLIT_INCLUDED |