flatten 20260225

This commit is contained in:
Timothy Prepscius
2026-02-25 12:43:06 -05:00
commit 996151a56a
521 changed files with 46722 additions and 0 deletions

49
tjp/core/string/split.inl Executable file
View File

@@ -0,0 +1,49 @@
// License: Modified MIT (NON-AI)
// See the LICENSE file in the root directory for license information.
// Copyright 2025 Timothy Prepscius
#pragma once
namespace tjp::core {
template <typename T>
std::vector<T> split(const T &s, const T &delimiter)
{
std::vector<T> result;
size_t last = 0; size_t next = 0;
while ((next = s.find(delimiter, last)) != T::npos)
{
if (last < next)
result.push_back(s.substr(last, next-last));
last = next + std::max(delimiter.size(), (size_t)1);
}
if (last < s.size())
result.push_back(s.substr(last));
return result;
}
template <typename T>
std::vector<T> split(const T &s, char delimiter)
{
std::vector<T> result;
size_t last = 0; size_t next = 0;
while ((next = s.find(delimiter, last)) != T::npos)
{
if (last < next)
result.push_back(s.substr(last, next-last));
last = next + 1;
}
if (last < s.size())
result.push_back(s.substr(last));
return result;
}
} // namespace