Instantiate!(Template, args) in Phobos?
Steven Schveighoffer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Apr 21 10:03:38 PDT 2016
On 4/21/16 10:47 AM, Nick Treleaven wrote:
> Hi,
> There doesn't seem to be something like this in Phobos:
>
> alias Instantiate(alias Template, T...) = Template!T;
>
> Here's an example of why I need it:
>
> alias staticEx(string msg, string file = __FILE__, size_t line =
> __LINE__) =
> Instantiate!(.staticEx!(Exception, msg), file, line);
>
> template staticEx(T:Throwable, args...)
> {
> auto staticEx(string file = __FILE__, size_t line = __LINE__)()
> ...
>
> Full code:
> http://dpaste.dzfl.pl/810e55b1acd76
>
> I found std.meta.ApplyLeft but it doesn't seem to work here. I've needed
> this before and ended up doing a workaround with a template block and
> temporary alias but it might be nice if Phobos had this. Or is there a
> simpler solution?
This doesn't work?
alias staticEx(string msg, string file = __FILE__, size_t line =
__LINE__) = staticEx!(Exception, msg).staticEx!(file, line);
I would think something with AliasSeq could come in handy, it's the way
to alias a compile-time list.
-Steve
More information about the Digitalmars-d-learn
mailing list