d - 包含模板结构的模板接口
问题描述
给定一个结构模板和一个模板接口,该接口有一个返回结构模板的成员以及另一个不同类型的成员,设计和实现的正确方法是什么?
我有以下内容,但我在实现时遇到编译错误:
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;
}
}
浏览D书中的在线编程并不包括实现这种情况。
解决方案
这是你的错误:
interface IFoo(V) {
TemplateStruct resulta(); // <== Here
V resultb();
}
resulta()
return TemplateStruct
,它是一个模板,而不是一个完整的类型。你需要指定它的模板参数,就像你在class Foo
:
interface IFoo(V) {
TemplateStruct!(bool, string) resulta();
V resultb();
}
推荐阅读
- python - 如何从 JSON 中提取特定值
- c# - 同时执行多个长时间运行的进程的最简单方法c#
- amazon-web-services - AWS 无服务器架构教学平台
- windows - 使用库 pdfium 构建小型 c 程序时出错
- flutter - 颤振:此函数的返回类型为 'Future
',但不以 return 语句结尾 - c++ - 为什么 clang-format 搞砸了这段代码?
- docker - Docker filebeat自动发现未检测到nginx日志
- azure - ADFS WAP 服务器上的 Azure AD 连接运行状况
- javafx - 按下删除键后,Javafx TextField 错误地定位插入符号
- spring-boot - Spring security 和 spring data :安全访问不属于当前用户的数据