www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Deduplicating Template Parameter List of std.variant.Algebraic

reply =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
I just noticed that Algebraic doesn't deduplicate its types 
before construction because this compiles:

     import std.variant : Algebraic;
     auto x = Algebraic!(int, int)(5);

Is this really sane?
Sep 24 2015
parent reply =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Thursday, 24 September 2015 at 20:20:42 UTC, Nordlöw wrote:
 I just noticed that Algebraic doesn't deduplicate its types 
 before construction because this compiles:

     import std.variant : Algebraic;
     auto x = Algebraic!(int, int)(5);

 Is this really sane?
How can a template parameter list be deduplicated or sorted?
Sep 25 2015
parent reply Meta <jared771 gmail.com> writes:
On Friday, 25 September 2015 at 16:08:41 UTC, Nordlöw wrote:
 How can a template parameter list be deduplicated or sorted?
You can use http://dlang.org/phobos/std_meta.html#.NoDuplicates. I imagine this was an oversight in the implementation of Algebraic.
Sep 25 2015
parent =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Friday, 25 September 2015 at 18:11:51 UTC, Meta wrote:
 You can use 
 http://dlang.org/phobos/std_meta.html#.NoDuplicates. I imagine 
 this was an oversight in the implementation of Algebraic.
Thanks
Sep 25 2015