On 5/5/16 6:50 PM, Erik Smith wrote:

Alias works at the cost of adding a 2nd type name:

alias Res = Resource!();
auto res  = Res.create

The other problem is that the alias definition by itself instantiates,
which I can't afford.

I have createResource() now, it just doesn't fit well with the rest of
the calling styles.

There is also this approach, which might be slightly more idiomatic

struct Resource(T) {}
struct Policy {}

auto create(alias T)() {
     T!Policy r;
     return r;
}

auto r = create!Resource;

I believe factory external IFTI functions are quite idiomatic. They are all over phobos.

-Steve

Reply via email to