Fixed URLs with non-default char types.
This commit is contained in:
@@ -249,7 +249,7 @@ template<typename TLeft, typename TRight>
|
||||
}
|
||||
|
||||
template<typename TChar, typename TTraits, typename TAllocator>
|
||||
void makeLower(std::basic_string<TChar, TTraits, TAllocator>& string)
|
||||
constexpr void makeLower(std::basic_string<TChar, TTraits, TAllocator>& string)
|
||||
{
|
||||
std::transform(string.begin(), string.end(), string.begin(), [locale = std::locale()](TChar chr)
|
||||
{
|
||||
@@ -258,7 +258,7 @@ void makeLower(std::basic_string<TChar, TTraits, TAllocator>& string)
|
||||
}
|
||||
|
||||
template<typename TChar, typename TTraits, typename TAllocator>
|
||||
void makeUpper(std::basic_string<TChar, TTraits, TAllocator>& string)
|
||||
constexpr void makeUpper(std::basic_string<TChar, TTraits, TAllocator>& string)
|
||||
{
|
||||
std::transform(string.begin(), string.end(), string.begin(), [locale = std::locale()](TChar chr)
|
||||
{
|
||||
@@ -268,7 +268,7 @@ void makeUpper(std::basic_string<TChar, TTraits, TAllocator>& string)
|
||||
|
||||
template<typename... TArgs>
|
||||
[[nodiscard]]
|
||||
auto toLower(TArgs&&... args)
|
||||
constexpr auto toLower(TArgs&&... args)
|
||||
{
|
||||
std::basic_string string(std::forward<TArgs>(args)...);
|
||||
makeLower(string);
|
||||
@@ -277,7 +277,7 @@ auto toLower(TArgs&&... args)
|
||||
|
||||
template<typename... TArgs>
|
||||
[[nodiscard]]
|
||||
auto toUpper(TArgs&&... args)
|
||||
constexpr auto toUpper(TArgs&&... args)
|
||||
{
|
||||
std::basic_string string(std::forward<TArgs>(args)...);
|
||||
makeUpper(string);
|
||||
@@ -287,7 +287,7 @@ auto toUpper(TArgs&&... args)
|
||||
|
||||
template<typename TNumber>
|
||||
[[nodiscard]]
|
||||
bool toNumber(std::string_view stringView, TNumber& outNumber, int base = 10) noexcept
|
||||
constexpr bool toNumber(std::string_view stringView, TNumber& outNumber, int base = 10) noexcept
|
||||
{
|
||||
const char* start = &*stringView.begin();
|
||||
const char* end = start + stringView.size();
|
||||
@@ -295,6 +295,14 @@ bool toNumber(std::string_view stringView, TNumber& outNumber, int base = 10) no
|
||||
return res.ec == std::errc{} && res.ptr == end;
|
||||
}
|
||||
|
||||
template<typename TChar, typename TTraits, typename TNumber>
|
||||
[[nodiscard]]
|
||||
constexpr bool toNumber(std::basic_string_view<TChar, TTraits> stringView, TNumber& outNumber, int base = 10) noexcept requires (!std::is_same_v<TChar, char>)
|
||||
{
|
||||
std::string asString(stringView.begin(), stringView.end());
|
||||
return toNumber(asString, outNumber, base);
|
||||
}
|
||||
|
||||
namespace pipe
|
||||
{
|
||||
struct Join
|
||||
|
||||
Reference in New Issue
Block a user