d模板函数的链接错误

原文
我希望可存储类实例关联数组中,供以后使用,最小示例:

interface PathConverter
{
    T toD(T)(string value);
}

class NumberConverter(T) : PathConverter
{
    T toD(T)(string value)
    {
        import std.conv : to;

        return to!T(value);
    }
}

alias IntConverter = NumberConverter!int;

void main()
{
    PathConverter[string] allConverters;
    allConverters["int"] = new IntConverter;
    int converted = allConverters["int"].toD!int("9");
}

可在接口中定义函数

interface PathConverter
{
    string getValue();

    final T toD(T)()
    {
        import std.conv : to;

        return to!T(getValue());
    }
}

按指针存储类,解决该问题.

posted @ 2022-10-05 15:47  zjh6  阅读(16)  评论(0)    收藏  举报  来源