D 包含模板结构的模板接口

D 包含模板结构的模板接口,d,D,给定一个结构模板和一个模板接口,该接口有一个返回结构模板的成员以及另一个不同类型的成员,设计和实现的正确方法是什么 我有以下几点,但在实现时遇到编译错误: struct TemplateStruct(T, U) { T a; U b; } interface IFoo(V) { TemplateStruct resulta(); V resultb(); } class Foo : IFoo!int { TemplateStruct!(bool, string) resu

给定一个结构模板和一个模板接口,该接口有一个返回结构模板的成员以及另一个不同类型的成员,设计和实现的正确方法是什么

我有以下几点,但在实现时遇到编译错误:

struct TemplateStruct(T, U) {
  T a;
  U b;
}

interface IFoo(V) {
  TemplateStruct resulta();
  V resultb();
}

class Foo : IFoo!int {
  TemplateStruct!(bool, string) resulta() {
    return TemplateStruct!(bool, string)(true, "a");
  }

  int resultb() {
    return 1;
  }
}
浏览在线书籍并不包括实施这种情况。

以下是您的错误:

interface IFoo(V) {
    TemplateStruct resulta(); // <== Here
    V resultb();
}

有没有办法在定义接口模板参数的同时定义结构模板参数?是的,但这将更改接口的签名:
interface IFoo(V,T,U){TemplateStruct!(T,U)resulta();V resultb();}
interface IFoo(V) {
    TemplateStruct!(bool, string) resulta();
    V resultb();
}