On Friday, 16 November 2012 at 02:22:32 UTC, Adam D. Ruppe wrote:
On Friday, 16 November 2012 at 02:00:05 UTC, Stugol wrote:
Hmm, that makes a bit more sense now I guess. Funny, I don't remember seeing that rule when I read the documentation.

It might not be clear, but it is there:

http://dlang.org/module.html
"The ModuleDeclaration sets the name of the module and what package it belongs to. If absent, the module name is taken to be the same name (stripped of path and extension) of the source file name."

The parenthesis is important in this case - once the name is stripped of path, it only leaves a simple name, no more package info.

I'm not quite sure what purpose the MODULE keyword serves in any case. I have a file "Include.D\Infinity\Standard\Mixins\Event.d", but if I give it a module name of "infinity.standard.event" it doesn't work. I have to include the ".mixins" part. So what's the point?

Also, I'm having difficulty specifying a default specialisation for a template class:

   class Event(TEventArgs : EventArgs = EventArgs) {
   }

Usage:

   Event!() e1;     // Works
   Event e2;        // Won't compile

How can I have "Event" be an alias for "Event!EventArgs"?

Reply via email to