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" <[email protected]> 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
>