New*_*low 5 c++ templates typedef typename
template <class T>
struct ABC
{
typedef typename T* pT;
};
int main(){}
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了错误
expected nested-name-specifier before 'T'
expected ';' before '*' token
代码示例有什么问题?
关键字typename在非限定名称(不在其前面的名称)上被禁止::,即使它们是相关的.
C++ 03 [部分14.6/5]说
关键字typename只能应用于限定名称,但这些名称不必相关.
pt 依赖于T,但这无关紧要(在此上下文中).
删除typename以使您的代码编译.
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |