diff options
author | Ed Tanous <edtanous@google.com> | 2023-01-20 06:03:17 +0300 |
---|---|---|
committer | Ed Tanous <ed@tanous.net> | 2023-02-17 06:28:23 +0300 |
commit | 50ebd4af91ece2e7b5e75b600f83a2a74b315068 (patch) | |
tree | 94f4efb8624af4cb3aac1bf71ab6f4bf0df70e37 /include/str_utility.hpp | |
parent | 455ccdf33c4580eb9ac3e71152fa8854266b7fbc (diff) | |
download | bmcweb-50ebd4af91ece2e7b5e75b600f83a2a74b315068.tar.xz |
Implement alternative to on boost::split
boost::split has a documented false-positive in clang-tidy. While
normally we'd handle this with NOLINTNEXTLINE, this doesn't appear to
work in all cases. Unclear why, but seems to be due to some of our
lambda callback complexity.
Each of these uses is a case where we should be using a more specific
check, rather than split, but for the moment, this is the best we have.
Tested: clang-tidy passes.
[1] https://github.com/llvm/llvm-project/issues/40486
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I144c6610cb740287b7225e2be03b4142a64f9563
Diffstat (limited to 'include/str_utility.hpp')
-rw-r--r-- | include/str_utility.hpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/str_utility.hpp b/include/str_utility.hpp new file mode 100644 index 0000000000..39e1c82351 --- /dev/null +++ b/include/str_utility.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include <string> +#include <string_view> +#include <vector> + +namespace bmcweb +{ +// This is a naive replacement for boost::split until +// https://github.com/llvm/llvm-project/issues/40486 +// is resolved +inline void split(std::vector<std::string>& strings, std::string_view str, + char delim) +{ + size_t start = 0; + size_t end = 0; + while ((start = str.find_first_not_of(delim, end)) != std::string::npos) + { + end = str.find(delim, start); + strings.emplace_back(str.substr(start, end - start)); + } +} +} // namespace bmcweb |