feat(string): add CTStringView and CTString concepts
This commit is contained in:
		| @@ -18,6 +18,9 @@ NAMESPACE_MODULE_BEGIN(Utility) | ||||
|  | ||||
| NAMESPACE_PRIVATE_BEGIN | ||||
|  | ||||
| template <typename T            > struct TIsTString                : FFalse { }; | ||||
| template <typename T, typename A> struct TIsTString<TString<T, A>> : FTrue  { }; | ||||
|  | ||||
| template <typename T> | ||||
| class TCStringFromTString final : FNoncopyable | ||||
| { | ||||
| @@ -58,6 +61,8 @@ private: | ||||
|  | ||||
| NAMESPACE_PRIVATE_END | ||||
|  | ||||
| template <typename T> concept CTString = NAMESPACE_PRIVATE::TIsTString<TRemoveCV<T>>::Value; | ||||
|  | ||||
| /** The default string allocator that uses SSO and can be placed right into FAny without dynamically allocating memory. */ | ||||
| template <CCharType T> | ||||
| using TDefaultStringAllocator = TInlineAllocator<(40 - 3 * sizeof(size_t)) / sizeof(T)>; | ||||
|   | ||||
| @@ -20,9 +20,21 @@ NAMESPACE_REDCRAFT_BEGIN | ||||
| NAMESPACE_MODULE_BEGIN(Redcraft) | ||||
| NAMESPACE_MODULE_BEGIN(Utility) | ||||
|  | ||||
| template <CCharType T> | ||||
| class TStringView; | ||||
|  | ||||
| template <CCharType T, CAllocator<T> Allocator> | ||||
| class TString; | ||||
|  | ||||
| NAMESPACE_PRIVATE_BEGIN | ||||
|  | ||||
| template <typename T> struct TIsTStringView                 : FFalse { }; | ||||
| template <typename T> struct TIsTStringView<TStringView<T>> : FTrue  { }; | ||||
|  | ||||
| NAMESPACE_PRIVATE_END | ||||
|  | ||||
| template <typename T> concept CTStringView = NAMESPACE_PRIVATE::TIsTStringView<TRemoveCV<T>>::Value; | ||||
|  | ||||
| /** | ||||
|  * The class template TStringView describes an object that can refer to a constant contiguous sequence of char-like objects | ||||
|  * with the first element of the sequence at position zero. Provides a set of convenient string processing functions. | ||||
| @@ -506,8 +518,8 @@ public: | ||||
| 	/** | ||||
| 	 * Converts a string into a boolean value. | ||||
| 	 * | ||||
| 	 * - 1, "true",  "True",  "TRUE"  and non-zero integers become true. | ||||
| 	 * - 0, "false", "False", "FALSE" and unparsable values become false. | ||||
| 	 * - "True"  and non-zero integers become true. | ||||
| 	 * - "False" and unparsable values become false. | ||||
| 	 * | ||||
| 	 * @return The boolean value. | ||||
| 	 */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user