On Sunday, 31 January 2021 at 14:04:00 UTC, realhet wrote:
Hi,

I wan't to process every specialization of the BitFlags struct in a function:
So far the best I can come up is this:

static void stdUI(F)(ref F flags) if(F.stringof.startsWith("BitFlags!(")){}

But it's obviously lame.
If I try this way:

  static void stdUI(E, U)(ref BitFlags!(E, U) flags){}

I get a cannot deduce arguments error.

Your problem is that you are trying to match `U`, a template type parameter [1], with BitFlags' `unsafe`, a template value parameter [2]. It should work if you change it to:

static void stdUI(E, Flag!"unsafe" u)(ref BitFlags!(E, u) flags) {}

[1] https://dlang.org/spec/template.html#template_type_parameters
[2] https://dlang.org/spec/template.html#template_value_parameter

Reply via email to