On Thursday, 29 September 2016 at 01:54:42 UTC, Minty Fresh wrote:
I ran into this issue just recently when trying to write a
least-squares optimization function.
Notably,
module leastsq;
T[] leastsq(alias func, T)(T[] vec, . . .)
{
. . .
}
It becomes impossible to import and call this template function
from outside the module it's declared in. Trying to do so just
yields:
Error: function expected before (), not module leastsq of
type void
This is really inconvenient. `leastsq` has a very long and
implementation, most of which is not a public API. It makes
sense to put it into its own module because it and all of the
functions it uses internally are some 1000 lines long.
I don't really know of any other language that faces this
limitation.
I ran into this too, it is annoying. I think you're supposed to
use different names.