diff options
Diffstat (limited to 'src/kernel/NeKit')
| -rw-r--r-- | src/kernel/NeKit/Config.h | 8 | ||||
| -rw-r--r-- | src/kernel/NeKit/Vettable.h | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/kernel/NeKit/Config.h b/src/kernel/NeKit/Config.h index 900ea28c..7cf01a2c 100644 --- a/src/kernel/NeKit/Config.h +++ b/src/kernel/NeKit/Config.h @@ -203,4 +203,12 @@ struct TrueResult final { static constexpr bool kValue = true; }; + +template <class Type> +struct PropertyResult final { + using ResultType = Type; + using ResultTypeRef = ResultType&; + + static constexpr bool kValue = Type::kValue; +}; } // namespace Kernel diff --git a/src/kernel/NeKit/Vettable.h b/src/kernel/NeKit/Vettable.h index c8c27fe3..294aaad5 100644 --- a/src/kernel/NeKit/Vettable.h +++ b/src/kernel/NeKit/Vettable.h @@ -40,12 +40,12 @@ struct Vettable<IVettable> final { static constexpr bool kValue = true; }; -using FallbackType = bool (*)(bool); +using FallbackType = bool (*)(bool type_value); /// @brief Concept version of Vettable. template <typename Type, FallbackType OnFallback> concept IsVettable = requires() { - { Vettable<Type>::kValue ? TrueResult<Type>::kValue : OnFallback(FalseResult<Type>::kValue) }; + { Vettable<Type>::kValue ? TrueResult<Type>::kValue : OnFallback(PropertyResult<Type>::kValue) }; }; } // namespace Kernel |
