Named arguments via struct initialization in functions

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Wed Mar 9 16:25:28 PST 2016


On Wednesday, 9 March 2016 at 07:30:31 UTC, Edwin van Leeuwen 
wrote:
> On Sunday, 6 March 2016 at 17:35:38 UTC, Seb wrote:
>> [...]
>
> In ggplotd I often use named tuples as and "anonymoous" struct:
> Tuple!(double,"x")( 0.0 )
>
> I also added a merge function that will return a tuple 
> containing merged named tuples:
>
> Tuple!(double,"x",string,"colour")(-1, 
> "black").merge(Tuple!(double,"x")(0.0))
>
> returns:
> Tuple!(double,"x",string,"colour")(0, "black");
>
> As an aside the merge function also works with structs so you 
> can do the following:
>
> struct Point
> {
>   double x;
>   double y;
> }
>
> Tuple!(double,"x",string,"colour")(-1, 
> "black").merge(Point(1,2))
>
> returns:
> Tuple!(double,"x",double,"y",string,"colour")(1, 2, "black");
>
> It works reasonably well, except that the tuples require a lot 
> of typing.

slightly tangentially, you might be interested in this: 
https://github.com/D-Programming-Language/phobos/pull/4043


More information about the Digitalmars-d mailing list