diff --git a/AK/TypeCasts.h b/AK/TypeCasts.h index c076f5cae8..1b0721bef1 100644 --- a/AK/TypeCasts.h +++ b/AK/TypeCasts.h @@ -51,9 +51,26 @@ ALWAYS_INLINE CopyConst& verify_cast(InputType& input) return static_cast&>(input); } +template +ALWAYS_INLINE CopyConst* as_if(InputType& input) +{ + if (!is(input)) + return nullptr; + return static_cast*>(&input); +} + +template +ALWAYS_INLINE CopyConst* as_if(InputType* input) +{ + if (!input) + return nullptr; + return as_if(*input); +} + } #if USING_AK_GLOBALLY +using AK::as_if; using AK::is; using AK::verify_cast; #endif