On 04/19/2012 01:41 AM, F i L wrote:
kennytm wrote:
struct Foo1 {
    struct Unsafe {
    static:
        void bar() { ... }
    }
}
Foo1 f;
f.Unsafe.bar();

That fails when you add variables though:

   struct Foo {
     struct Unsafe {
       string name;
       static void bar() {
         writeln(name); // error: needs 'this'
       }
     }
   }


struct Foo {
  struct Unsafe {
  static:
    string name;
    void bar() {
      writeln(name); // fine
    }
  }
}


Like I said, it's completely possible with templates today, you just
have to alias them for nice syntax. Parameterless templates

It is not really a 'template' if it is parameterless and does not need to be instantiated.

would just
be sugar, but that sugar would be nice when you want to use
classifications like this in real code.

This idiom imho shouldn't be overused. Renamed imports usually suffice.

Reply via email to