On Monday, 26 July 2021 at 17:01:13 UTC, JG wrote:
On Monday, 26 July 2021 at 16:46:40 UTC, Tejas wrote:
On Monday, 26 July 2021 at 15:42:44 UTC, Paul Backus wrote:
On Monday, 26 July 2021 at 15:29:26 UTC, Tejas wrote:
[...]

The delegate must be `nothrow`:

```d
void delegate() nothrow f;
```

Doesn't seem to matter. I tried that beforehand. And even if it did why does passing it directly work without explicitly qualifying it as nothrow then?

It does work for me. To me running the following explains why:

```d
import std;
import core.thread.osthread;

void delegate() f;
void main()
{
    void func(){}
    f = &func;
    pragma(msg,typeof(&func));
    pragma(msg,typeof(f));
    createLowLevelThread(&func, 2<<30);//works
    //createLowLevelThread(f, 2<<30);// doesn't  work!!
}
```

Yeah after reading the error diagnostics carefully I realized that the compiler is inferring many attributes when passing ```func``` directly but not when passing via delegate

Reply via email to