Let this() figure out T implicitly?

Kevin Cox kevincox.ca at gmail.com
Fri Feb 17 04:51:39 PST 2012


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 at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20120217/2cd109fb/attachment.html>


More information about the Digitalmars-d-learn mailing list