Commit Graph

44 Commits

Author SHA1 Message Date
02cdce39e2 feat(templates): add MakeAny() and fix MakeOptional() 2023-02-20 18:53:59 +08:00
0c54bbe2ac refactor(memory): remove FNoInit versions of MakeUnique() and MakeShared() 2023-02-13 21:56:16 +08:00
0709f209c8 feat(templates): add initializer_list overloads to the in place constructor and emplace 2023-01-03 10:15:38 +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
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
441df3791c fix(templates): fix requirements for FAny and TAtomic 2022-12-16 19:30:55 +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
058f07fedc refactor(templates): allow some template classes to derive and replace some using with inheritance 2022-11-21 23:28:19 +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
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
af07b1a134 refactor(templates): enhance encapsulation by changing part of the struct to a class 2022-11-15 19:28:43 +08:00
f1d4d99ecf refactor(*): replaces template class type traits with C++20 at all 2022-06-16 23:37:29 +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
1dcd3dc3b3 refactor(typetraits): replaces template class type traits with concepts for TypeTraits/PrimaryType.h 2022-05-22 22:34:43 +08:00
522c71f2b6 refactor(templates): optimize the implementation of TOptional and TVariant 2022-05-03 18:22:41 +08:00
d634fc3cf8 fix(templates): fix TOptional constraints and implementation 2022-04-27 23:22:52 +08:00
c2eca8df1e refactor(templates): remove the GetData function from the non-container class 2022-04-24 22:42:40 +08:00
04d713cd93 refactor(templates): refactor GetTypeHash into a member function 2022-04-22 22:28:44 +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
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
e1871de73b perf(templates): fix the redefinition of Swap function in private namespaces 2022-03-26 19:31:45 +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
e0aab7e0b9 perf(templates): add requires on the content of TOptional and TVariant 2022-03-21 18:40:30 +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
f7b611febc fix(templates): fix TOptional's operator!= returned an wrong value for invalid value 2022-03-15 11:52:46 +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