Enum type deduction inside templates is not working

pgtkda via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jun 26 23:12:56 PDT 2014


On Friday, 27 June 2014 at 06:04:20 UTC, Uranuz wrote:
> Compiler can't deduce type for template struct Pair when using 
> it with enum argument.  There is an example
>
> import std.stdio;
>
> enum Category { first, second, third };
>
> struct Pair(F, S)
> {
> 	F first;
> 	S second;
> 	
> 	this(F f, S s)
> 	{
> 		first = f;
> 		second = s;
> 	}
> }
>
>
> void main()
> {
> 	auto p = Pair(Category.first, "first"); //It fails
> 	
> 	writeln(p);
> }
>
> Is it not working for some reason or I'm doing something wrong 
> or is it just lack of implementation? How I could make this 
> working without explicit specifying of types?

is this a solution for your problem?


enum Category { first, second, third };

struct Pair
{
	Category cat;
	string second;
	this(Category cat, string second){
		this.cat = cat, this.second = second;
	}
}
void main(){
         auto p = Pair(Category.first, "first");
         writeln(p);
}



More information about the Digitalmars-d-learn mailing list