Commit Graph

207 Commits

Author SHA1 Message Date
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