Search code examples
typesd

How to create strongly typed aliasses in D?


How do I create a strongly types alias in D? Something like:

alias euro = uint;
alias dollar = uint;

euro toEur(dollar pd) { ... }
dollar toDollar(euro pe) { ... }

Solution

  • A strongly typed alias is actually a new type, so just use a plain struct:

    struct euro {
         uint amount;
    }
    

    If you want it to implicitly convert to and from uint, you can also add alias amount this;, but that weakens the typing so you might not want to.