@nogc deduction for templated functions
Jonathan M Davis
newsgroup.d at jmdavisprog.com
Sat Nov 18 17:46:09 UTC 2017
On Saturday, November 18, 2017 17:28:14 David Zhang via Digitalmars-d-learn
wrote:
> Hi,
>
> Is there a way for a templated function to deduce or apply the
> @safe/@nogc attributes automaticaly? I feel like I remember dmd
> doing so at one point, but it doesn't appear to work anymore. In
> particular, I need to call a function belonging to a templated
> type, but do not know what attributes are applied.
>
> eg.
>
> void func(T)(T t)
> {
> //Don't know if safe or nogc
> t.someFunc();
> }
>
> Thanks.
pure, nothrow, @safe, and @nogc are infered for templated functions. So,
whether those attributes apply when they're not explicitly marked on a
templated function deponds on the contents of the function. You can test it
with a unit test. e.g.
@nogc unittest
{
...
foo.func();
}
will give a compiler error if func wasn't infered as @nogc.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list