Commit Graph

372 Commits

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