diff --git a/betterRenderer/renderer/source/nvtexture.cpp b/betterRenderer/renderer/source/nvtexture.cpp index adc3ff1d..3ea15067 100644 --- a/betterRenderer/renderer/source/nvtexture.cpp +++ b/betterRenderer/renderer/source/nvtexture.cpp @@ -415,7 +415,7 @@ bool NvTexture::CreateRhiTexture() { backend->GetDevice()->executeCommandList(command_list, nvrhi::CommandQueue::Graphics); if (m_sz_texture->get_type() == "make:") { - auto const components{Split(std::string(m_sz_texture->get_name()), '?')}; + auto const components{Split(m_sz_texture->get_name(), '?')}; auto dictionary = std::make_shared(components.back()); diff --git a/utilities/utilities.cpp b/utilities/utilities.cpp index 255aed74..eeabecb0 100644 --- a/utilities/utilities.cpp +++ b/utilities/utilities.cpp @@ -15,6 +15,7 @@ Copyright (C) 2007-2014 Maciej Cierniak #include #include +#include #ifndef WIN32 #include #endif @@ -154,35 +155,12 @@ bool FuzzyLogicAI(double Test, double Threshold, double Probability) return false; } -std::vector &Split(const std::string &s, char delim, std::vector &elems) +std::vector Split(std::string_view s, char delim) { // dzieli tekst na wektor tekstow - - std::stringstream ss(s); - std::string item; - while (std::getline(ss, item, delim)) - { - elems.push_back(item); - } - return elems; -} - -std::vector Split(const std::string &s, char delim) -{ // dzieli tekst na wektor tekstow - std::vector elems; - Split(s, delim, elems); - return elems; -} - -std::vector Split(const std::string &s) -{ // dzieli tekst na wektor tekstow po biaƂych znakach - std::vector elems; - std::stringstream ss(s); - std::string item; - while (ss >> item) - { - elems.push_back(item); - } - return elems; + std::vector out; + for (const auto& part : s | std::ranges::views::split(delim)) + out.emplace_back(part.begin(), part.end()); + return out; } std::pair split_string_and_number(std::string const &Key) diff --git a/utilities/utilities.h b/utilities/utilities.h index c59749e8..87f854a4 100644 --- a/utilities/utilities.h +++ b/utilities/utilities.h @@ -122,9 +122,7 @@ bool FuzzyLogicAI(double Test, double Threshold, double Probability); /*to samo ale zawsze niezaleznie od DebugFlag*/ /*operacje na stringach*/ -std::vector &Split(const std::string &s, char delim, std::vector &elems); -std::vector Split(const std::string &s, char delim); -// std::vector Split(const std::string &s); +std::vector Split(std::string_view s, char delim); std::pair split_string_and_number(std::string const &Key); std::string to_string(int Value);