UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Conditionals.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2// Templates for conditional flow control inside other templates
3
4#pragma once
5
6namespace uLang
7{
8
9//------------------------------------------------------------------
10// From AndOrNot.h
11
15template <typename... Types>
16struct TAnd;
17
18template <bool LHSValue, typename... RHS>
20{
21 enum { Value = TAnd<RHS...>::Value };
22};
23
24template <typename... RHS>
25struct TAndValue<false, RHS...>
26{
27 enum { Value = false };
28};
29
30template <typename LHS, typename... RHS>
31struct TAnd<LHS, RHS...> : TAndValue<LHS::Value, RHS...>
32{
33};
34
35template <>
36struct TAnd<>
37{
38 enum { Value = true };
39};
40
44template <typename... Types>
45struct TOr;
46
47template <bool LHSValue, typename... RHS>
49{
50 enum { Value = TOr<RHS...>::Value };
51};
52
53template <typename... RHS>
54struct TOrValue<true, RHS...>
55{
56 enum { Value = true };
57};
58
59template <typename LHS, typename... RHS>
60struct TOr<LHS, RHS...> : TOrValue<LHS::Value, RHS...>
61{
62};
63
64template <>
65struct TOr<>
66{
67 enum { Value = false };
68};
69
73template <typename Type>
74struct TNot
75{
76 enum { Value = !Type::Value };
77};
78
79//------------------------------------------------------------------
80// From EnableIf.h
81
94template <bool Predicate, typename Result = void>
96
97template <typename Result>
98class TEnableIf<true, Result>
99{
100public:
101 using Type = Result;
102};
103
104template <typename Result>
105class TEnableIf<false, Result>
106{};
107
108template <bool Predicate, typename Result = void>
110
111//------------------------------------------------------------------
112// From ChooseClass.h
113
115template<bool Predicate, typename TrueClass, typename FalseClass>
117
118template<typename TrueClass, typename FalseClass>
120{
121public:
123};
124
125template<typename TrueClass, typename FalseClass>
127{
128public:
130};
131
132}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
FalseClass Result
Definition Conditionals.h:129
TrueClass Result
Definition Conditionals.h:122
Definition Conditionals.h:116
Result Type
Definition Conditionals.h:101
Definition Conditionals.h:95
Definition VVMEngineEnvironment.h:23
typename TEnableIf< Predicate, Result >::Type TEnableIfT
Definition Conditionals.h:109
@ false
Definition radaudio_common.h:23
Definition Conditionals.h:20
@ Value
Definition Conditionals.h:21
Definition Conditionals.h:16
Definition Conditionals.h:75
@ Value
Definition Conditionals.h:76
Definition Conditionals.h:49
@ Value
Definition Conditionals.h:50
Definition Conditionals.h:45