diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-12 09:27:10 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-12 09:28:17 +0100 |
| commit | dafb757549b5238f67c49b2c8c0a1b44aedf0bd4 (patch) | |
| tree | 4ba7e264247736115e820c9a1babc3c0c4a2a701 /src/kernel/NeKit | |
| parent | 2035b324141cbebb1f51a13a28046fbde2735c96 (diff) | |
chore: make Ref `operator bool` explicit, remove useless `MUST_PASS` in TLS.inl, use `CFRef` in LaunchHelpers.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit')
| -rw-r--r-- | src/kernel/NeKit/ErrorOr.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Ref.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Utils.h | 12 | ||||
| -rw-r--r-- | src/kernel/NeKit/Vettable.h | 6 |
4 files changed, 16 insertions, 6 deletions
diff --git a/src/kernel/NeKit/ErrorOr.h b/src/kernel/NeKit/ErrorOr.h index a8280406..4e43cb27 100644 --- a/src/kernel/NeKit/ErrorOr.h +++ b/src/kernel/NeKit/ErrorOr.h @@ -16,7 +16,7 @@ namespace Kernel { /// ================================================================================ /// @brief ErrorOr class for error handling. /// ================================================================================ -template <typename T> +template <class T> class ErrorOr final { public: explicit ErrorOr() = default; diff --git a/src/kernel/NeKit/Ref.h b/src/kernel/NeKit/Ref.h index 960df31f..253ee379 100644 --- a/src/kernel/NeKit/Ref.h +++ b/src/kernel/NeKit/Ref.h @@ -46,7 +46,7 @@ class Ref final { Type operator*() { return fClass; } - operator bool() { return Vettable<Type>::kValue; } + explicit operator bool() { return Vettable<Type>::kValue; } bool operator!() { return !Vettable<Type>::kValue; } private: diff --git a/src/kernel/NeKit/Utils.h b/src/kernel/NeKit/Utils.h index 28a153af..71cae42b 100644 --- a/src/kernel/NeKit/Utils.h +++ b/src/kernel/NeKit/Utils.h @@ -51,12 +51,22 @@ Size urt_string_len(const Utf8Char* str); /// =========================================================== /// template <typename CharType = Char> -inline SizeT oe_string_len(const CharType* str) { +inline constexpr SizeT oe_string_len(const CharType* str) { if (!str) return 0; +#if __cplusplus == 202302L + if consteval { + return ARRAY_SIZE(str); + } else { + SizeT len{0}; + while (str[len] != 0) ++len; + return len; + } +#else SizeT len{0}; while (str[len] != 0) ++len; return len; +#endif } } // namespace Kernel diff --git a/src/kernel/NeKit/Vettable.h b/src/kernel/NeKit/Vettable.h index 52528847..6769507f 100644 --- a/src/kernel/NeKit/Vettable.h +++ b/src/kernel/NeKit/Vettable.h @@ -29,7 +29,7 @@ struct INotVettable { NE_COPY_DEFAULT(INotVettable) }; -template <typename T> +template <class Type> struct Vettable final { static constexpr bool kValue = false; }; @@ -50,9 +50,9 @@ concept IsVettable = requires(OnFallback fallback) { { Vettable<T>::kValue ? true : fallback() }; }; -template <typename T, typename OnFallback> +template <class Type, typename OnFallback> concept IsNotVettable = requires(OnFallback fallback) { - { !Vettable<T>::kValue ? true : fallback() }; + { !Vettable<Type>::kValue ? true : fallback() }; }; } // namespace Kernel |
