From 1b30150ab79ff1338f209a8ddb54b3dc60cfb599 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 24 Jun 2024 00:06:25 +0800 Subject: fix(SubProcess): fix pipe fs close, add tests. NEED TEST: BufferStream, AutoReadStream, SubProcess. --- include/cru/common/String.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'include/cru/common/String.h') diff --git a/include/cru/common/String.h b/include/cru/common/String.h index 5d9fc549..21a3db51 100644 --- a/include/cru/common/String.h +++ b/include/cru/common/String.h @@ -6,7 +6,6 @@ #include "StringToNumberConverter.h" #include "StringUtil.h" -#include #include #include #include @@ -221,16 +220,14 @@ class CRU_BASE_API String { Index* processed_characters_count, unsigned flags, int base) const; int ParseToInt(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags, - int base = 0) const; + StringToNumberFlag flags = {}, int base = 0) const; long long ParseToLongLong(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags, - int base = 0) const; + StringToNumberFlag flags = {}, int base = 0) const; float ParseToFloat(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags) const; + StringToNumberFlag flags = {}) const; double ParseToDouble(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags) const; + StringToNumberFlag flags = {}) const; std::vector ParseToFloatList(value_type separator = u' ') const; std::vector ParseToDoubleList(value_type separator = u' ') const; @@ -261,6 +258,8 @@ class CRU_BASE_API String { Index capacity_ = 0; // always 1 smaller than real buffer size }; +std::ostream& CRU_BASE_API operator<<(std::ostream& os, const String& value); + class CRU_BASE_API StringView { public: using value_type = char16_t; @@ -357,23 +356,24 @@ class CRU_BASE_API StringView { template std::enable_if_t, TInteger> ParseToInteger( - Index* processed_characters_count, unsigned flags, int base) const { - auto result = StringToIntegerConverterImpl(flags, base) - .Parse(data(), size(), processed_characters_count); + Index* processed_characters_count, StringToNumberFlag flags, + int base) const { + auto utf8_string = ToUtf8(); + auto result = StringToIntegerConverter(flags, base) + .Parse(utf8_string.data(), utf8_string.size(), + processed_characters_count); return result.negate ? -result.value : result.value; } int ParseToInt(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags, - int base = 0) const; + StringToNumberFlag flags = {}, int base = 0) const; long long ParseToLongLong(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags, - int base = 0) const; + StringToNumberFlag flags = {}, int base = 0) const; float ParseToFloat(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags) const; + StringToNumberFlag flags = {}) const; double ParseToDouble(Index* processed_characters_count = nullptr, - unsigned flags = StringToNumberFlags::kNoFlags) const; + StringToNumberFlag flags = {}) const; std::vector ParseToFloatList(value_type separator = u' ') const; std::vector ParseToDoubleList(value_type separator = u' ') const; -- cgit v1.2.3