On Saturday, 19 March 2016 at 18:15:54 UTC, jmh530 wrote:
On Saturday, 19 March 2016 at 15:09:00 UTC, Jakob Ovrum wrote:
Maybe an alternative would be to simply ignore explicit attributes on templated functions

That seems like a risky proposition. What if you mark some templates nogc to prevent inference on that. Then a future change causes an allocation. I would want to be notified.

Right. Any @nogc caller code would cease to compile, but maybe the generic function is the entry point to a @nogc subportion of the program.

As for the `default` approach, if we designed it to work with explicit attributes, like so:
---
@safe:
void foo();
void bar(T)(T t) default @nogc; // Infer pure, nothrow and @safe but require @nogc
---
Then `default` wouldn't have that problem.

Reply via email to