Commit Graph

364 Commits

Author SHA1 Message Date
5021171324 fix(containers): remove operator<=> of TBitset because its order is not defined 2023-03-15 19:22:04 +08:00
1daf90adee fix(containers): fix operator<=> of TArray and TStaticArray to compare lexicographically 2023-03-13 21:53:47 +08:00
dd8b698bb3 feat(containers): enable TBitset to support custom block type 2023-03-13 19:23:44 +08:00
432b6e0a6b feat(containers): add TBitset and the corresponding testing 2023-03-12 23:18:04 +08:00
9045f9b3b2 refactor(*): fix EBO issues and remove NAMESPACE_PRIVATE about containers 2023-03-04 19:19:27 +08:00
5c91059203 refactor(memory): add allocator EBO helper macro and use it for TInlineAllocator 2023-03-02 23:02:58 +08:00
7a8a1648d1 feat(containers): add TArray::Reference and TArray::ConstReference etc 2023-03-01 23:07:29 +08:00
a15ff69809 refactor(memory): remove FDefaultAllocator and directly specify a specific 2023-02-27 23:29:34 +08:00
40d27eece6 refactor(containers): add the CElementalObject concept to constrain elements 2023-02-26 22:13:45 +08:00
c8650b4aa5 feat(containers): add TArrayView and use TObserverPtr instead of raw pointer 2023-02-26 21:55:36 +08:00
343ff8d240 refactor(templates): refactor the return value of GetData() to TObserverPtr 2023-02-26 19:01:32 +08:00
e9f780622f feat(containers): add TStaticArray and operations support 2023-02-24 19:09:22 +08:00
9debe74b32 refactor(*): remove constexpr for containers and allocators 2023-02-22 23:37:51 +08:00
e8c9f9cc23 feat(memory): add TInlineAllocator and the corresponding testing 2023-02-22 23:33:10 +08:00
bc3cc3d2cc feat(containers): add helper functions like MakeReverseIterator() etc 2023-02-21 23:22:28 +08:00
02cdce39e2 feat(templates): add MakeAny() and fix MakeOptional() 2023-02-20 18:53:59 +08:00
56cc0a4d69 feat(containers): modify the constructor of iterator adapters to be perfect forwarding 2023-02-19 23:28:54 +08:00
4cec973485 feat(containers): add converting move constructor for iterator adaptors 2023-02-19 21:07:03 +08:00
5e64450bce feat(containers): add TFunctionalOutputIterator and operations support 2023-02-19 19:00:57 +08:00
5909d20605 feat(containers): add TFunctionalInputIterator and operations support 2023-02-18 19:09:39 +08:00
f521c2b5d5 fix(templates): fix FNoncopyable to satisfy the CMovable concept 2023-02-17 23:31:24 +08:00
bae95fa438 feat(containers): add TCountedIterator and operations support 2023-02-16 23:34:21 +08:00
4bbb8e395a feat(containers): add ENABLE_RANGE_BASED_FOR_LOOP_SUPPORT macro definition 2023-02-15 23:41:05 +08:00
273be032ec feat(containers): add TMoveIterator and operations support 2023-02-15 23:36:18 +08:00
c4e0528d93 fix(memory): support for creating TUniqueRef object from MakeUnique() 2023-02-14 23:53:34 +08:00
fb0d1e978d refactor(memory): disable comparison of TUniquePtr and TSharedPtr with nullptr 2023-02-13 23:31:58 +08:00
0c54bbe2ac refactor(memory): remove FNoInit versions of MakeUnique() and MakeShared() 2023-02-13 21:56:16 +08:00
05d59ed323 feat(containers): add TReverseIterator and operations support 2023-02-13 19:26:09 +08:00
151c90d371 refactor(memory): summing allocator support into one header file 2023-02-13 18:51:53 +08:00
4ab63da977 feat(containers): add iterator concepts and operations support 2023-02-12 23:46:30 +08:00
3efabc342f fix(memory): fix segfault error caused by freeing nullptr with Free() 2023-02-12 23:45:13 +08:00
05e62e1381 feat(containers): add TArray and the corresponding testing 2023-02-08 23:31:35 +08:00
febffc453a feat(memory): add FAllocatorInterface and FHeapAllocator 2023-02-08 23:18:24 +08:00
c634c2757c feat(memory): add InOutPtr and the corresponding testing 2023-01-21 14:34:57 +08:00
73b5305d34 fix(miscellaneous): fix LNK2005 errors of MSVC caused by GSignalDefault etc 2023-01-20 23:33:30 +08:00
c7f50957db perf(miscellaneous): optimize check_no_entry() and unimplemented() 2023-01-20 23:22:19 +08:00
0d99fad3f0 feat(memory): add TObserverPtr and the corresponding testing 2023-01-20 23:02:57 +08:00
1b2ea5c2a6 feat(templates): add TRetainedRef and the corresponding testing 2023-01-20 22:24:21 +08:00
2ef2c4a729 feat(templates): add TPropagateConst and the corresponding testing 2023-01-20 21:05:08 +08:00
e498d9b0b8 refactor(*): move TUniquePtr and TSharedPtr to memory from templates category 2023-01-19 19:34:17 +08:00
d029ab0dfc feat(miscellaneous): add program support utilities such as Abort() or System() etc 2023-01-19 19:17:45 +08:00
52cd65dbad feat(templates): add TPointerTraits and the corresponding testing 2023-01-16 21:02:54 +08:00
96e6fb22cd fix(memory): fix alignment of operator new to __STDCPP_DEFAULT_NEW_ALIGNMENT__ 2023-01-15 21:57:16 +08:00
c38714220e refactor(templates): remove TSharedPtr<T>::ToSharedRef(T*) function overload 2023-01-15 18:41:38 +08:00
5c2c1b4a48 fix(templates): fix TSharedFromThis not working for indirectly derived 2023-01-15 18:34:04 +08:00
78979b414a perf(templates): remove unnecessary and wrong reinterpret_cast in TSharedPtr 2023-01-13 23:14:11 +08:00
caabc51803 feat(templates): add CTUniquePtr and CTSharedPtr etc 2023-01-12 22:06:10 +08:00
10b8e0fc45 fix(templates): fix requires of TUniquePtr and TSharedPtr for arrays 2023-01-11 23:14:40 +08:00
9472686d99 feat(templates): add TSharedPtr and the corresponding testing 2023-01-11 19:29:17 +08:00
49023da0c1 feat(memory): add memory leak check assertion 2023-01-11 19:24:02 +08:00
d8543421a0 feat(miscellaneous): add DO_CHECK and check_code() assertion macros 2023-01-09 22:00:34 +08:00
d825285a4a feat(typetraits): add CDerivedFrom and the corresponding testing 2023-01-08 18:03:05 +08:00
c7e3ac32b4 refactor(templates): TUniquePtr calls the deleter using Invoke() instead 2023-01-07 19:30:21 +08:00
b7c3ffd0fb perf(templates): optimize the performance of TAtomic::FetchFn() 2023-01-07 11:10:19 +08:00
4f4a351316 perf(templates): simplify the requires for TUniquePtr and rename something 2023-01-06 20:24:28 +08:00
1a5f3c9c54 refactor(templates): modify the TReferenceWrapper to be like std 2023-01-06 19:17:41 +08:00
403f0721e1 feat(templates): add TUniquePtr and the corresponding testing 2023-01-06 18:28:31 +08:00
55242cdd99 refactor(templates): remove TFunctionRef::IsValid() etc to avoid ambiguity 2023-01-03 20:40:27 +08:00
72fd58b8bd refactor(templates): change the derived class of FNoncopyable to private inheritance 2023-01-03 19:22:06 +08:00
66baa51e30 feat(templates): overloads the GetTypeHash algorithm for array 2023-01-03 10:15:38 +08:00
1deb09480f refactor(templates): restrict the return value types of GetData and GetNum 2023-01-03 10:15:38 +08:00
95b492851a fix(templates): fix the implementation of the Swap algorithm for arrays 2023-01-03 10:15:38 +08:00
96ecd33c16 feat(templates): add TScopeCallback TGuardValue and TScopeCounter 2023-01-03 10:15:38 +08:00
0709f209c8 feat(templates): add initializer_list overloads to the in place constructor and emplace 2023-01-03 10:15:38 +08:00
5338cd286a feat(templates): overloads the Swap algorithm for array 2023-01-03 10:14:53 +08:00
e4d59b9832 refactor(templates): add final specifier for template class 2022-12-30 19:11:01 +08:00
9368a49806 style(*): add comments and attribute specifiers 2022-12-29 21:55:02 +08:00
b75cb30f4f refactor(templates): refactor GetTypeHash and Swap to friend 2022-12-19 18:00:52 +08:00
de059cb980 fix(templates): disable TReferenceWrapper swap and enable it into FAny 2022-12-18 19:28:33 +08:00
d87d292691 refactor(templates): refactor operator== and operator<=> to member or friend 2022-12-18 19:11:53 +08:00
6cee8a1185 refactor(templates): remove unnecessary or harmful FORCEINLINE 2022-12-16 23:23:05 +08:00
b6c76ceadc refactor(templates): remove TOptional<TReferenceWrapper<T>> specialization 2022-12-16 22:04:35 +08:00
441df3791c fix(templates): fix requirements for FAny and TAtomic 2022-12-16 19:30:55 +08:00
a8e1852b34 refactor(templates): refactor FAny to a non-template class 2022-12-15 23:38:51 +08:00
6b42dbdc05 feat(memory): add template function overload for Memmove and Memcmp 2022-12-15 23:37:41 +08:00
015b6df809 fix(templates): fix TFunction does not call constructs of empty type 2022-12-14 22:11:30 +08:00
cbc4e3f926 fix(templates): fix TFunction incorrectly calling copy constructor in move constructor 2022-12-13 23:26:53 +08:00
ca67769796 refactor(templates): do not allow TReferenceWrapper to rebind a new object 2022-12-13 23:13:14 +08:00
ac9e0d38a6 refactor(templates): add FORCEINLINE to the constexpr function 2022-12-13 22:02:39 +08:00
89c173897e perf(templates): refactor the TFunction so that it no longer refers to TAny 2022-12-12 23:29:22 +08:00
e886927a2b refactor(templates): remove TTuple::ApplyAfter and TTuple::ApplyBefore 2022-12-03 23:15:02 +08:00
9cc7ac9480 refactor(templates): refactor TVariant::Visit to Visit 2022-12-03 23:14:25 +08:00
797386f3d6 fix(templates): fix the type selection of TVariant's converting constructor 2022-12-03 23:12:29 +08:00
01eec5d4c0 feat(templates): add TTypeSequence and meta tools 2022-12-03 23:11:05 +08:00
c4c1430e46 feat(templates): add specialization of GetData and GetNum to initializer_list 2022-11-23 23:27:45 +08:00
246965af79 fix(templates): add constexpr specifier to TTuple's lifecycle functions 2022-11-22 23:37:31 +08:00
058f07fedc refactor(templates): allow some template classes to derive and replace some using with inheritance 2022-11-21 23:28:19 +08:00
e35fa9dd11 fix(templates): fix DeclVal implementation 2022-11-21 22:04:17 +08:00
6a70d4273e fix(templates): fix FSingleton not working correctly with EBO on MSVC
make CAnyCustomStorage satisfy the concept of FSingleton
2022-11-18 23:18:58 +08:00
a4ac19673f refactor(templates): trivializes TOptional and TVariant operations for types that use trivially copy/move operations 2022-11-17 23:17:50 +08:00
f96c000b9e refactor(*): make the template class concept indistinguishable from cv-qualified 2022-11-17 20:57:54 +08:00
9a3c957b38 refactor(templates): add sizeof...(Ts) > 0 constraint to TVariant 2022-11-17 18:48:20 +08:00
3f56a2beca style(*): enclose the requires expression in parentheses as required by GCC 2022-11-16 22:03:54 +08:00
d37eee0d23 style(*): replaces Types... in the template parameters with Ts... 2022-11-16 19:13:37 +08:00
f347132725 fix(templates): fix compile error in TReferenceWrapper constructor 2022-11-15 22:15:10 +08:00
391670adb7 feat(templates): remove AsConst for array 2022-11-15 21:02:29 +08:00
af07b1a134 refactor(templates): enhance encapsulation by changing part of the struct to a class 2022-11-15 19:28:43 +08:00
226f5a34e9 feat(templates): add CAnyCustomStorage for TAny 2022-11-14 21:07:45 +08:00
9ff3b1c583 refactor(templates): optimize TAny and TFunction and fix TFunction alignment problem 2022-11-14 19:05:17 +08:00
096150a305 fix(templates): fix TAny's constraints and simplify naming 2022-06-21 23:31:46 +08:00
f1d4d99ecf refactor(*): replaces template class type traits with C++20 at all 2022-06-16 23:37:29 +08:00
8e31a82a1f fix(memory): fix compile error when memory constructs such as Memory::CopyConstruct for cv qualifiers type 2022-06-05 22:52:55 +08:00
8b902d15a4 refactor(typetraits): replaces template class type traits with alias template for TypeTraits/Common.h 2022-05-29 23:18:20 +08:00
c6620da1dd refactor(typetraits): replaces template class type traits with alias template for TypeTraits/CopyQualifiers.h 2022-05-22 23:19:30 +08:00
4205a23310 refactor(typetraits): replaces template class type traits with alias template for TypeTraits/Invocable.h 2022-05-22 23:05:11 +08:00
2ce259e7cc refactor(typetraits): replaces template class type traits with alias template for TypeTraits/Miscellaneous.h 2022-05-22 22:52:47 +08:00
97910be70c refactor(typetraits): simplifies concept selection and removes the concept of bitwise operations 2022-05-22 22:36:49 +08:00
ee46d84897 refactor(typetraits): replaces template class type traits with concepts at all 2022-05-22 22:36:30 +08:00
6a5a101af4 refactor(typetraits): replaces template class type traits with concepts for TypeTraits/Miscellaneous.h 2022-05-22 22:36:15 +08:00
413762a90a refactor(typetraits): replaces template class type traits with concepts for TypeTraits/SupportedOperations.h 2022-05-22 22:36:04 +08:00
c316b8f190 refactor(typetraits): replaces template class type traits with concepts for TypeTraits/TypeProperties.h 2022-05-22 22:35:27 +08:00
22fe906eda refactor(typetraits): replaces template class type traits with concepts for TypeTraits/CompositeType.h 2022-05-22 22:35:11 +08:00
1dcd3dc3b3 refactor(typetraits): replaces template class type traits with concepts for TypeTraits/PrimaryType.h 2022-05-22 22:34:43 +08:00
5d1f622af8 refactor(typetraits): TIsDestructible use Cpp17Destructible requirements instead of std::is_destructible 2022-05-22 22:33:45 +08:00
13e3b49118 refactor(templates): TFunction replaces using type aliases with derived classes 2022-05-14 22:52:21 +08:00
eeef55e9b4 refactor(*): remove FTypeInfo and replace it with the native std::type_info 2022-05-12 23:36:32 +08:00
db5ed179c6 refactor(templates): add template class specialization TOptional<TReferenceWrapper<T>> 2022-05-03 22:20:08 +08:00
522c71f2b6 refactor(templates): optimize the implementation of TOptional and TVariant 2022-05-03 18:22:41 +08:00
a737eea487 refactor(templates): disable TFunctionRef to bind r-valued callable 2022-05-01 18:02:26 +08:00
eb814e37d3 refactor(templates): optimize TAny implementation, increase inline storage size 2022-04-30 23:38:09 +08:00
59d3a9eac2 feat(miscellaneous): add type traits and memory operations support to FTypeInfo 2022-04-30 23:03:29 +08:00
c2c4a03974 feat(memory): add CopyConstruct and the Count parameter uses the size_t 2022-04-30 21:33:18 +08:00
7aadebba70 refactor(miscellaneous): replace TSynthThreeWay with the function version 2022-04-30 19:27:25 +08:00
38902eb779 fix(typetraits): fix implementation of TIsScopedEnum TIsSwappable and TIsBitwiseConstructible 2022-04-30 19:25:17 +08:00
d634fc3cf8 fix(templates): fix TOptional constraints and implementation 2022-04-27 23:22:52 +08:00
494928aa6b refactor(*): add check and constraint diagnostics for illegal alignment 2022-04-27 22:50:56 +08:00
897ee4f283 fix(miscellaneous): fix misbehavior of assertions under some build types 2022-04-26 23:04:50 +08:00
099cba38f4 refactor(templates): simplify TTuple implementation 2022-04-25 23:04:19 +08:00
1dd42be86a feat(miscellaneous): add fixed-length floating-point support 2022-04-25 22:33:55 +08:00
0ce3d9055b refactor(templates): block direct access to element 16 of TTuple 2022-04-24 23:11:00 +08:00
ff59698fdc feat(templates): add Ref helper function for TReferenceWrapper 2022-04-24 23:08:00 +08:00
f72d6a53d8 refactor(templates): remove the predefined functors, Lambda is a better choice 2022-04-24 22:54:08 +08:00
c2eca8df1e refactor(templates): remove the GetData function from the non-container class 2022-04-24 22:42:40 +08:00
b3a97cfe21 refactor(memory): make the Align function use the maximum integer uint64 2022-04-24 22:16:56 +08:00
6b63436d41 refactor(templates): remove TAtomic::IsLockFree function 2022-04-22 22:33:23 +08:00
04d713cd93 refactor(templates): refactor GetTypeHash into a member function 2022-04-22 22:28:44 +08:00
63b63ef0b4 chore(*): add Development build type to allow debugging in optimization-enabled mode 2022-04-20 23:38:29 +08:00
ecbf6480ac refactor(templates): fix the return value derivation of GetData and GetNum 2022-04-19 22:53:23 +08:00
018d3afb73 refactor(templates): refactor Swap into a member function 2022-04-14 22:41:22 +08:00
5c82ab1e0d refactor(templates): refining TOptional's constraints 2022-04-13 22:35:30 +08:00
4f769a9207 feat(templates): add TAtomic and the corresponding testing 2022-04-12 08:33:19 +08:00
98e8e87c7a refactor(memory): use static_assert's assertion limit as a constraint 2022-04-10 20:14:46 +08:00
a80860f107 feat(templates): add common functors outside STD and the corresponding testing 2022-04-10 10:25:42 +08:00
bb89dd6509 refactor(miscellaneous): renamed builtin type, add fixed-width character type 2022-04-08 17:29:05 +08:00
a086f90f25 refactor(templates): fix the behavior of the TFunction::Target function 2022-04-08 16:52:17 +08:00
ceccf9d722 feat(templates): add common functors and the corresponding testing 2022-04-08 11:44:36 +08:00
92523a13b2 feat(templates): add TFunction and the corresponding testing 2022-04-07 15:57:02 +08:00
988e0335a0 fix(templates): fix Invoke selects the wrong operation when the function has specifiers 2022-04-07 14:52:41 +08:00
a539f70535 refactor(templates): make FTypeInfo behave more like std::type_info and optimize TAny 2022-04-05 17:00:33 +08:00
2a3a5aec35 refactor(templates): make TAny use the construct when the operator= is delete 2022-04-05 13:20:00 +08:00
943c7c5991 refactor(templates): add constraints to reduce duplicate code on TAny etc 2022-04-03 22:55:17 +08:00
5f4b0d8c22 feat(templates): add type traits to determine if it is TAny etc 2022-03-31 17:36:48 +08:00
54ab72224f feat(templates): add type hash support and the corresponding testing 2022-03-31 16:40:31 +08:00
c4c205e35b refactor(templates): optimize TOptional and TVariant, add necessary constraints 2022-03-31 12:07:15 +08:00
d8a4908a88 feat(templates): add TTuple and the corresponding testing 2022-03-31 09:39:30 +08:00
fd0bebd7be feat(miscellaneous): add TSynthThreeWay and the corresponding testing 2022-03-30 12:07:48 +08:00
782f5f5cb2 fix(templates): fix the initialization problem of TVariant members with cv-qualifiers 2022-03-30 12:06:05 +08:00
91755d2196 feat(templates): add TUnwrapReference and the corresponding testing 2022-03-26 19:33:28 +08:00
e1871de73b perf(templates): fix the redefinition of Swap function in private namespaces 2022-03-26 19:31:45 +08:00
3150e07f6b feat(templates): add TIntegerSequence and the corresponding testing 2022-03-23 17:50:55 +08:00
0c6bf06a56 refactor(templates): optimize visit functions for TOptional, TVariant and TAny, add necessary constraints 2022-03-23 17:49:30 +08:00
2f55c84c32 feat(templates): add TOptional and TVariant to compare the equivalence of Invalid 2022-03-22 11:12:05 +08:00
be1d91591c feat(templates): add TAny and the corresponding testing 2022-03-22 11:10:12 +08:00
e0aab7e0b9 perf(templates): add requires on the content of TOptional and TVariant 2022-03-21 18:40:30 +08:00
e03cfa956c feat(miscellaneous): add attribute specifier support 2022-03-19 23:07:04 +08:00
beaf5635ba feat(memory): add Memory/MemoryOperator.h and the corresponding testing 2022-03-19 16:05:47 +08:00
465ce882b9 fix(typetraits): fix that TIsBitwiseConstructible and TIsBitwiseRelocatable cannot completely remove cv-qualifier 2022-03-19 14:46:11 +08:00
c7d6c780b9 refactor(testing): put all test functions under the Testing namespace 2022-03-19 13:35:27 +08:00
c69ed3b9e1 feat(typetraits): complete type traits for bitwise operations 2022-03-19 13:27:37 +08:00
cd1a8da1a8 feat(memory): complete low-level memory management utilities 2022-03-18 20:17:28 +08:00
94416676d2 refactor(testing): rename test functions for Templates to prevent redefinition 2022-03-17 10:19:41 +08:00
1bff879a0b style(*): move some constants and placeholders to CoreMiscDefines.h 2022-03-17 09:22:48 +08:00
b10963d310 feat(miscellaneous): add FTypeInfo and the corresponding testing 2022-03-16 11:25:48 +08:00
1b8b449ed4 style(miscellaneous): move Compare.h from Templates to Miscellaneous 2022-03-16 10:47:17 +08:00
2448653fa0 style(miscellaneous): move Placeholders.h from Templates to Miscellaneous 2022-03-16 09:58:23 +08:00
c46e5059aa style(testing): fix the location of the function API macro 2022-03-16 09:27:58 +08:00
d8ae39b980 feat(templates): add TVariant and the corresponding testing 2022-03-15 19:26:31 +08:00
8188d29a58 feat(typetraits): add TypeTraits/CopyQualifiers.h and the corresponding testing 2022-03-15 14:25:06 +08:00
f7b611febc fix(templates): fix TOptional's operator!= returned an wrong value for invalid value 2022-03-15 11:52:46 +08:00
48a344796a fix(typetraits): Remove wrong circular include 2022-03-15 10:07:22 +08:00
0b4cb1a9e0 style(templates): redefine placeholders such as ForceInit, InPlace, etc. 2022-03-14 18:03:57 +08:00
8a3b089648 feat(templates): add TOptional and the corresponding testing 2022-03-13 23:18:07 +08:00
c2aecef3dd feat(templates): add three-way comparison operator support 2022-03-09 23:35:05 +08:00
babc7327eb feat(miscellaneous): add enumerators such as ENoInit and EInPlace 2022-03-08 23:04:55 +08:00
cdc5bd77e9 style(concept): minimize Concepts' header file dependency on Templates 2022-03-06 23:32:39 +08:00
f94621e7e0 fix(templates): fix TReferenceWrapper compilation error on GCC 2022-03-04 22:53:24 +08:00
2fa4bcea13 feat(templates): add TReferenceWrapper and the corresponding testing 2022-02-09 21:46:39 +08:00
ad80dcd78f style(miscellaneous): rename the Misc directory to Miscellaneous 2022-02-09 17:22:49 +08:00
2bc852b63c feat(templates): add AddressOf function and the corresponding testing 2022-02-09 17:07:47 +08:00
63fdd34789 feat(templates): add Invoke function and corresponding peripheral tools 2022-02-04 21:11:05 +08:00
b0c170f803 feat(templates): improve Swap functions and peripheral tools 2022-02-04 16:34:41 +08:00
bafcadc68f feat(concept): add concepts that depend on templates such as Forward and add corresponding tests 2022-02-04 15:47:57 +08:00
3724188602 fix(templates): fix the problem that FNoncopyable etc. cannot be constructed 2022-02-03 22:25:02 +08:00
c70d22c85b fix(typetraits): fix compile errors caused by TCommonType and TCommonReference when there is no matching type 2022-02-03 21:18:19 +08:00
172a92edfe feat(templates): add basic tools such as Templates/Templates.h 2022-02-03 16:45:34 +08:00
a2847b8910 feat(concept): add basic concepts and the corresponding testing 2022-02-02 19:04:42 +08:00
a13b5832fc feat(typetraits): add TCommonReference and the corresponding testing 2022-01-11 23:21:05 +08:00
8baaa50335 refactor(typetraits): remove TypeTraits namespace and bool operation template 2021-12-26 15:57:09 +08:00
fc38e3d913 fix(typetraits): optimize TIsScopedEnum implementation and flag TInvokeResult errors 2021-12-26 15:27:56 +08:00
73bb0e9cfa feat(typetraits): add TypeTraits/TypeTraits.h 2021-12-23 23:30:07 +08:00