A pattern I'd like to see more of - Parsing template parameter tuples
Jacob Carlborg
doob at me.com
Tue May 22 14:53:50 UTC 2018
On Tuesday, 22 May 2018 at 11:08:13 UTC, Jonathan M Davis wrote:
> That's basically what dxml does except that it takes advantage
> of the fact that each member is a different type (because each
> is a differnt instance of std.typecons.Flag) so that it can
> have a variadic function which takes any of the arguments in
> any order. e.g.
>
> enum config = makeConfig(SkipComments.yes, SplitOnEmpty.yes);
> auto range = parseXML!config(xml);
>
> or
>
> auto range = parseXML!(makeConfig(SkipComments.yes,
> SplitOnEmpty.yes))(xml);
I don't see how that is any better.
* It requires implementing `makeConfig`
* It requires using std.typecons.Flag which I think is an ugly
hack due to the lack of named arguments
* It only supports boolean types
By using a regular struct it's also possible to specify named
arguments and in any order:
struct Options
{
bool foo;
int value;
bool bar;
string value2;
}
Options options = { value2: "asd", bar: true, foo: false };
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list