Rebind template(bug?)
Jack Applegame via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Aug 22 12:17:38 PDT 2016
On Monday, 22 August 2016 at 18:48:12 UTC, ag0aep6g wrote:
> You can take this further with template constraints. Gives it a
> more uniform appearance at the price of some repetition:
>
> ----
> class T()
> {
> int x;
> }
>
> class T(A...) : T!(A[0..$-1])
> if (A.length > 0 && A[$-1] == "Animal")
> {
> int y;
> }
>
> class T(A...) : T!(A[0..$-1])
> if (A.length > 0 && A[$-1] == "Dog")
> {
> int z;
> }
>
> class T(A...) : T!(A[0..$-1])
> if (A.length > 0 && A[$-1] == "Pug")
> {
> int s;
> }
Yes. And even simpler, if to change the order of template
parameters:
class T() {
int x;
}
class T(string type : "Animal", A...) : T!A {
int y;
}
class T(string type : "Dog", A...) : T!A {
int z;
}
class T(string type : "Pug", A...) : T!A {
int s;
}
More information about the Digitalmars-d-learn
mailing list