From 4f6f827e26ffcb9b850ef8a8b7f7b4beb5addb7a Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 27 Aug 2024 18:48:41 -0700 Subject: Add functor syntax support. (#4926) --- docs/user-guide/03-convenience-features.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'docs') diff --git a/docs/user-guide/03-convenience-features.md b/docs/user-guide/03-convenience-features.md index 559e4c9b4..1561d6605 100644 --- a/docs/user-guide/03-convenience-features.md +++ b/docs/user-guide/03-convenience-features.md @@ -331,6 +331,22 @@ int test() ``` Slang currently supports overloading the following operators: `+`, `-`, `*`, `/`, `%`, `&`, `|`, `<`, `>`, `<=`, `>=`, `==`, `!=`, unary `-`, `~` and `!`. Please note that the `&&` and `||` operators are not supported. +In addition, you can overload operator `()` as a member method: +```csharp +struct MyFunctor +{ + int operator()(float v) + { + // ... + } +} +void test() +{ + MyFunctor f; + int x = f(1.0f); // calls MyFunctor::operator(). + int y = f.operator()(1.0f); // explicitly calling operator(). +} +``` ## Subscript Operator -- cgit v1.2.3