Explain function syntax
Steven Schveighoffer
schveiguy at gmail.com
Mon Sep 22 00:27:09 UTC 2025
On Sunday, 21 September 2025 at 20:33:11 UTC, user1234 wrote:
> On Saturday, 20 September 2025 at 02:36:47 UTC, Steven
> Schveighoffer wrote:
>> What is a function type? It's the internal type that the
>> compiler has for a function, which you actually cannot express
>> in syntax.
>
> Actually D has a syntax to expression function types:
>
> ```d
> alias FT = void(int);
>
> void v(int a){}
> static assert(is(typeof(v) == function));
> static assert(is(typeof(v) == FT));
> ```
Well, I was sure you couldn't do this! I thought the only way was
to use `typeof` on an actual function.
But I stand corrected.
Looking at historical compilers, the `alias ... =` syntax was
added in 2.087.0. But before then, you could also do it like:
```d
alias void FT(int);
```
Which gives me so much C vibes...
-Steve
More information about the Digitalmars-d-learn
mailing list