On Saturday, 6 January 2018 at 21:33:46 UTC, Rubn wrote:
Is there a reason for the differences between Enum and Alias? For the most part enums are only used for things that have a value, but alias is used more for types. But with templates you can get around this and you basically get the funcitonality of Enum for alias. Oddly enough from the template parameter being "alias".


template valueOf(alias v)
{

}

alias aa = AliasSeq!(10 == 10);
enum  ee = 10 == 10;

alias err = 10 == 10; // error

What are the actually differences here with aa and ee?

The compiler can only alias to symbols and not to values.
therefore enum was chosen for manifest constants.

That alias can bind to values in template-parameters is useful but not exactly consistent :)

Reply via email to