From f199640bb31e1e273e34a068ea0fb7a55f2afb5e Mon Sep 17 00:00:00 2001 From: mTvare Date: Sat, 11 Jan 2025 02:44:43 +0530 Subject: Add overload for select to handle Optional (#6022) Fixes #6020 Co-authored-by: Yong He --- source/slang/core.meta.slang | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index ba8decc12..5c30da1e7 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -729,6 +729,18 @@ __generic __intrinsic_op(select) vector operator?:(vector __intrinsic_op(select) T select(bool condition, T ifTrue, T ifFalse); __generic __intrinsic_op(select) vector select(vector condition, vector ifTrue, vector ifFalse); +[ForceInline] +__generic Optional select(bool condition, __none_t ifTrue, T ifFalse) +{ + return select(condition, Optional(none), Optional(ifFalse)); +} + +[ForceInline] +__generic Optional select(bool condition, T ifTrue, __none_t ifFalse) +{ + return select(condition, Optional(ifTrue), Optional(none)); +} + // Allow real-number types to be cast into each other //@hidden: __intrinsic_op($(kIROp_FloatCast)) -- cgit v1.2.3