[Issue 566] Adding non-static members and functions to classes doesn't error

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Jan 29 01:00:49 PST 2007


http://d.puremagic.com/issues/show_bug.cgi?id=566





------- Comment #2 from kamm at incasoftware.de  2007-01-29 03:00 -------
Things seem to have changed a bit: now only the member variable is silently
made static while the member function works as a real non-static member
template.

class Foo
{
  template TBar(T)
  {
    T x;                   // Compiles, but is implicitly static
    void func(T t)   // Ok, non-static member template function
    { writefln(t); writefln(this.bar); }    
  }
  int bar = 42;
}

void main()
{
  Foo.TBar!(int).x = 2;
  Foo.TBar!(int).func(2); // error, since funcx is not static

  Foo f = new Foo;
  Foo g = new Foo;

  f.TBar!(int).func(2); // works

  f.TBar!(int).x = 10;
  g.TBar!(int).x = 20;
  writefln(f.TBar!(int).x); // prints 20
}


-- 



More information about the Digitalmars-d-bugs mailing list