Aho,

I accidentally had a function like this:

```d
    enum oneHalf(T)(T i) {
        return i >> 1;
    }
```

I'm wondering 2 things; firstly, does having an enum mean there is no auto-return? Or could it be CTFE?

Second, why is there no inference when I use an enum in one of the functions below?

```d
template foo (T) {
    enum foo = (T i) => i >> 1;
}

template bar (T) {
    auto bar (T i) => i >> 1;
}

import std;

void main()
{
    assert(oneHalf(42) == 21);
    42.foo!int.writeln; // no inference: "21"
    42.bar.writeln; // "21"
}
```

Thanks...

SDB@79

Reply via email to