feat(string): add CTStringView and CTString concepts

This commit is contained in:
2024-11-19 11:46:50 +08:00
parent 6230ec9df6
commit 19a37ea072
2 changed files with 19 additions and 2 deletions

View File

@ -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)>;