alias vs enum for lambdas?
user1234
user1234 at 12.de
Mon Apr 28 07:51:18 UTC 2025
On Monday, 28 April 2025 at 04:59:24 UTC, Orion wrote:
> In which programming scenarios should alias be used instead of
> enum?
>
> So far I have only found a simplified notation of a generic
> lambda:
> alias id = (x) => x; x; , which does not work in the case of
> enum.
>
> There is also a difference in overloading a non-generic lambda:
>
> alias m = (int x) => x;
> alias m = (float x) => 0.5 + x;
> - alias overloads a function with the same name.
>
> enum e = (int x) => x;
> ///enum e = (float x) => x; //error
> - enum does not.
>
> At the compiler level, enum lambda is represented as a literal.
> But how is alias represented? As an expression?
Alias is the proper way, there's specifications for them to work
as a way to overload whereas with enum there's no support.
Rememeber that
```
enum e = (int x) => x;
```
is a shortcut to
```
enum e
{
e = (int x) => x
}
```
so always use `alias`.
More information about the Digitalmars-d-learn
mailing list