包含模板结构的模板接口
Template interface containing template struct
给定一个结构模板和一个模板接口,该模板接口的成员 returns 结构模板以及另一个不同类型的成员,设计和实现的正确方法是什么?
我有以下内容,但在执行时出现编译错误:
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;
}
}
翻阅在线 Programming in D 书中没有涉及实现这种情况。
这是你的错误:
interface IFoo(V) {
TemplateStruct resulta(); // <== Here
V resultb();
}
resulta()
returns TemplateStruct
,这是一个模板,不是完整的类型。您需要指定其模板参数,就像您在 class Foo
:
中所做的那样
interface IFoo(V) {
TemplateStruct!(bool, string) resulta();
V resultb();
}
给定一个结构模板和一个模板接口,该模板接口的成员 returns 结构模板以及另一个不同类型的成员,设计和实现的正确方法是什么?
我有以下内容,但在执行时出现编译错误:
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;
}
}
翻阅在线 Programming in D 书中没有涉及实现这种情况。
这是你的错误:
interface IFoo(V) {
TemplateStruct resulta(); // <== Here
V resultb();
}
resulta()
returns TemplateStruct
,这是一个模板,不是完整的类型。您需要指定其模板参数,就像您在 class Foo
:
interface IFoo(V) {
TemplateStruct!(bool, string) resulta();
V resultb();
}