The error message is saying that you are trying to use Foo as a type but Foo is not a type, it is a template for a type.

On Feb 17, 2012 7:20 AM, "kraybourne" <stdin@kraybourne.com> wrote:
Hi!

This doesn't work:

       import std.stdio;
       class Foo(T)
       {
               T t;
               this(T val)
               {
                       t = val;
               }
       }

       void main()
       {
               auto o = new Foo(5);
       }
       _____

       $ dmd foo
       foo.d(13): Error: class foo.Foo(T) is used as a type
       $ _

So I must

       auto o = new Foo!(int)(5);

Then it compiles. Is it possible to have this() figure out the type some way? (In this particular example it's perhaps not such a big deal. But imagine a lot more args.)

(Side note: What _does_ that error message mean? I don't get it.)

thanks
/krbrn