/ / メモ
2008-07-02

昨日のは、無理やりすぎた。
普通に書いてみた。

class HelloWorld
{
    void say()
    {
        writefln("Hello, World!!");
    }
}

template OpNewCreator(T)
{
    T Create()
    {
        return new T();
    }
}

class HelloWorldManager(alias T)
{
    alias T.Create Create;
}

class HelloWorldManager2(alias T)
{
    alias T!(HelloWorld).Create Create;
}

class HelloWorldManager3(alias T = OpNewCreator)
{
    alias T!(HelloWorld).Create Create;
}

void main()
{
    HelloWorldManager!(OpNewCreator!(HelloWorld)) hc;
    auto h = hc.Create();
    h.say();

    HelloWorldManager2!(OpNewCreator) hc2;
    auto h2 = hc2.Create();
    h2.say();

    HelloWorldManager3!() hc3;
    auto h3 = hc3.Create();
    h3.say();
}

[2008-07-01-1]

トラックバック http://mikanya.dip.jp/memo/2008-07-02-1