From 2d56cc149fa8c07a92c9ee71950f3ec415590267 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sun, 14 Dec 2025 02:38:37 +0100 Subject: chore: improve Vettable pattern, add new concepts in Config.h Signed-off-by: Amlal El Mahrouss --- src/kernel/NeKit/Vettable.h | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'src/kernel/NeKit/Vettable.h') diff --git a/src/kernel/NeKit/Vettable.h b/src/kernel/NeKit/Vettable.h index 2b8221d5..5520af01 100644 --- a/src/kernel/NeKit/Vettable.h +++ b/src/kernel/NeKit/Vettable.h @@ -11,8 +11,14 @@ #include #include -#define NE_VETTABLE final : public ::Kernel::IVettable -#define NE_NOT_VETTABLE final : public ::Kernel::INotVettable +#define NE_VETTABLE \ + final: \ + public \ + ::Kernel::IVettable +#define NE_NOT_VETTABLE \ + final: \ + public \ + ::Kernel::INotVettable namespace Kernel { /// @brief Vet interface for objects. @@ -30,29 +36,30 @@ struct INotVettable { NE_COPY_DEFAULT(INotVettable) }; -// false_type equivalent tag. template -struct Vettable final {}; +struct Vettable final { + static constexpr bool kValue = false; +}; template <> struct Vettable final { - static constexpr bool kValue = false; + static constexpr bool kValue = false; }; template <> struct Vettable final { - static constexpr bool kValue = true; + static constexpr bool kValue = true; }; /// @brief Concept version of Vettable. -template +template concept IsVettable = requires(OnFallback fallback) { - { Vettable::kValue ? true : fallback() }; + { Vettable::kValue ? TrueResult::kValue : fallback() }; }; template concept IsNotVettable = requires(OnFallback fallback) { - { !Vettable::kValue ? true : fallback() }; + { !Vettable::kValue ? TrueResult::kValue : fallback() }; }; } // namespace Kernel -- cgit v1.2.3