做这样的事情的语法是什么?当我尝试编译下面的代码时,它告诉我a ';' was expected before '*',指向函数的返回类型,ResourceManager<T>::ResourceWrapper*.
template<class T>
class ResourceManager
{
private:
struct ResourceWrapper;
ResourceWrapper* pushNewResource(const std::string& file);
};
// (Definition of ResourceWrapper not shown.)
template <class T>
ResourceManager<T>::ResourceWrapper* ResourceManager<T>::pushNewResource(
const std::string& file)
{
// (Irrelevant details)
}
Run Code Online (Sandbox Code Playgroud)
Nav*_*een 10
你错过了typename关键字.有关需要原因的详细信息,请参阅此问题typename.这段代码应该编译:
template<class T>
class ResourceManager
{
private:
struct ResourceWrapper;
ResourceWrapper* pushNewResource(const std::string& file);
};
// (Definition of ResourceWrapper not shown.)
template <class T>
typename ResourceManager<T>::ResourceWrapper* ResourceManager<T>::pushNewResource(
^^^^^^^^ const std::string& file)
{
// (Irrelevant details)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |