|
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 |
|
|
97fbe0fc84
|
feat(typetraits): add TypeTraits/Miscellaneous.h and the corresponding testing
|
2021-12-22 23:24:25 +08:00 |
|
|
c37f2c3153
|
refactor(typetraits): make TConstant more in line with std style
|
2021-12-20 22:41:11 +08:00 |
|
|
c973a8674b
|
feat(typetraits): add TypeTraits/SupportedOperations.h and the corresponding testing
|
2021-12-13 23:29:53 +08:00 |
|
|
7490dfae67
|
feat(typetraits): add TypeTraits/TypeProperties.h and the corresponding testing
|
2021-12-12 22:54:43 +08:00 |
|
|
29c01baf63
|
feat(typetraits): add TypeTraits/CompositeType.h and the corresponding testing
|
2021-12-12 10:32:22 +08:00 |
|
|
60b4ec6f58
|
feat(typetraits): add TypeTraits/PrimaryType.h and the corresponding testing
|
2021-12-10 21:43:57 +08:00 |
|
|
cfb53c21e0
|
feat(misc): add AssertionMacros.h and the corresponding testing
|
2021-12-09 20:25:56 +08:00 |
|
|
271a3f49c3
|
refactor(platform): subdivide the platform category into specific categories
|
2021-12-05 23:06:15 +08:00 |
|
|
4605c0a682
|
refactor(*): change namespace relationships and fix name errors
|
2021-12-03 22:55:37 +08:00 |
|
|
6c49240000
|
完成 平台宏及基础支持
|
2021-12-02 23:20:40 +08:00 |
|
|
5d771f7558
|
增加模块命名空间声明 防止符号冲突
|
2021-12-02 22:50:05 +08:00 |
|
|
39da2d9fbd
|
修正目录 NS 宏改为 NAMESPACE
|
2021-12-01 22:55:35 +08:00 |
|
|
d6032ecc90
|
完成 预处理器辅助宏 和 核心宏 定义
|
2021-11-30 23:37:03 +08:00 |
|
|
152ae5605d
|
调整结构 将 Core 的工作转到 Utility 上来
|
2021-11-28 18:19:13 +08:00 |
|