diff options
| -rw-r--r-- | source/slang/core.meta.slang | 12 |
1 files changed, 12 insertions, 0 deletions
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<T, let N : int> __intrinsic_op(select) vector<T,N> operator?:(vector<b __generic<T> __intrinsic_op(select) T select(bool condition, T ifTrue, T ifFalse); __generic<T, let N : int> __intrinsic_op(select) vector<T,N> select(vector<bool,N> condition, vector<T,N> ifTrue, vector<T,N> ifFalse); +[ForceInline] +__generic<T> Optional<T> select(bool condition, __none_t ifTrue, T ifFalse) +{ + return select(condition, Optional<T>(none), Optional<T>(ifFalse)); +} + +[ForceInline] +__generic<T> Optional<T> select(bool condition, T ifTrue, __none_t ifFalse) +{ + return select(condition, Optional<T>(ifTrue), Optional<T>(none)); +} + // Allow real-number types to be cast into each other //@hidden: __intrinsic_op($(kIROp_FloatCast)) |
