c++ - 范围解析运算符无法与模板一致地工作
问题描述
当我在模板结构中使用范围解析运算符作为方法声明的一部分时,它不起作用。但是,当我在同一模板结构内的方法定义中使用相同的范围解析运算符作为 sizeof() 的一部分时,它可以正常工作。有人可以帮我让它作为方法定义的一部分工作吗?我在 Visual Studio 中使用 Visual C++。这是问题的代码示例。
样本.h
struct Top {
struct Data {
int time;
};
Data* pData;
};
template<typename T>
struct App {
T* pParent;
T::Data* getDD() { // error C2061: syntax error: identifier 'Data'
return pParent->pData;
}
int getSize() {
return sizeof(T::Data); // This works fine
}
};
样本.cpp
main() {
Top top;
App<Top> app;
Top::Data* pData = app.getDD();
int size = app.getSize();
}
解决方案
推荐阅读
- angular - github页面没有选择Angular应用程序?
- r - ROC曲线比较R中的逻辑回归和神经网络预测
- typescript - 如何在 TypeScript 的泛型函数中使用有界类型?
- class - 系统中类互连的逻辑方式
- tensorflow - 如何将 l2 归一化应用于 keras 中的图层?
- arduino - 在'{'令牌arduino led之前预期的不合格ID
- html - 如何仅使用 HTML 在新选项卡中打开按钮链接?
- django - 我们什么时候应该在 Django 中使用 db_index=True?
- php - 保存后如何将uuid绑定到模型
- php - CakePHP 日志仅显示 Cloudflare IP