【发布时间】:2017-05-16 09:50:24
【问题描述】:
我的代码中的各个模块中有多个数据类,我不打算对其进行任何修改。 我为它们每个都有一个容器类,它有一个指向这个数据类的指针,还有一个指向一个类的指针,该类旨在在不知道它们的情况下保存这些类。
所以在我实现的容器类中:
DataClass GetMyData (void){
return myData;
}
在我创建的这些硬币容器类的集合中
template<class ContainerClass>
ContainerClass GetContainer (void);
template<class ContainerClass>
auto GetData (void){
GetContainer<ContainerClass> ().GetMyData();
}
但是每当我尝试使用这个 GetData 函数时,我都会得到错误
返回'auto'的函数在定义之前不能使用
所以我的问题是,在这种情况下是否可以使用 auto (c++11),或者我必须使用 2 个类制作我的模板?
【问题讨论】:
-
在 C++11 中,这根本不可能:返回类型推导仅适用于那里的 lambdas。是 C++14 也为函数添加了它。
-
谢谢 Angew,我想我也必须使用另一个模板参数...
-
@MartinZink - 你没有
-
OP:@Angew 的意思是返回类型推导是 C++14 的一个特性,所以它永远不会使用严格的 C++11 标准编译器进行编译