On Tuesday, 8 October 2013 at 13:40:47 UTC, Roman wrote:
```
interface I
{
//auto foo(int i); //forbidden
auto bar(T)(T i); //Error: function a.I.bar!(int).bar has no
function body with return type inference
}
Basically the error on the template answers your statement, bar
has no implementation so the compiler can't decide what the
return type should be.
Similarly a template can't be overridden since it doesn't exist
until you use it. What you can do is make final templates which
aren't ever inherited but can forward to functions which can be
inherited[1].
1. http://3d.benjamin-thaut.de/?p=94