feat(templates): add TRetainedRef and the corresponding testing

This commit is contained in:
2023-01-20 21:21:26 +08:00
parent 2ef2c4a729
commit 1b2ea5c2a6
3 changed files with 85 additions and 5 deletions

View File

@ -1475,8 +1475,8 @@ void TestPropagateConst()
{
struct FTestA
{
void Check(bool bFlag) { check(!bFlag); }
void Check(bool bFlag) const { check(bFlag); }
void Check(bool bFlag) { always_check(!bFlag); }
void Check(bool bFlag) const { always_check( bFlag); }
};
struct FTestB
@ -1504,9 +1504,9 @@ void TestPropagateConst()
TempA = TempB;
TempB = TempC;
check(TempA.IsValid());
check(TempA == &IntA);
check(TempB == TempC);
always_check(TempA.IsValid());
always_check(TempA == &IntA);
always_check(TempB == TempC);
}
}
@ -1544,6 +1544,12 @@ void TestMiscTemplates()
always_check(TestFunctionB(AddressOf(ObjectA)) == 0);
always_check(AddressOf(TestMiscTemplates) == &TestMiscTemplates);
struct FTestRetainedRef { explicit FTestRetainedRef(TRetainedRef<const int64> InRef) { } };
int64 IntA;
FTestRetainedRef TempA(IntA);
// FTestRetainedRef TempB(114514);
}
NAMESPACE_END(Testing)