171 | | * Member pointers |
172 | | * True inner classes |
173 | | * Output function arguments |
174 | | * Built-in associative arrays |
| 171 | ==== Member pointers ==== |
| 172 | |
| 173 | Delegates identify the object instance and method to be called (but not the arguments). Conversely, member pointers identify the method to be called, but not the arguments and not the object instance (It can be invoked on any object which is instace of a given class). This feature comes from C++. |
| 174 | |
| 175 | ==== True inner classes ==== |
| 176 | |
| 177 | A true inner class is non-static in the sense that any instance of this class implicitly contains a reference to some instance of the outer class. Thus the inner class is constructed in non-static context (in context of an object instance) and the outer object can be referenced via a keyword. |
| 178 | |
| 179 | ==== Output function arguments ==== |
| 180 | |
| 181 | Semantically equivalent to additional return values of a function. A simple way to return multiple values (especially since Sysel does not have tuples). |
| 182 | |
| 183 | ==== Built-in associative arrays ==== |
| 184 | |
| 185 | Maps and sets are so commonly used and so immensely useful that it might be worth incorporating into the langauge core. This could bring greater ease of use and optimization opportunities. |