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`.

Reply via email to