#include#include using namespace std;template class A{public: A(T1 t) {} class AIterator { }};class B{public: template void try() { A ::AIterator it; }};
以上代码在gcc环境下无法编译通过。
经过查找原因,后来发现:C++中依赖受限名称(使用了::来限定)不能作为类型使用,除非加上typename。
依赖名称:含有模板参数<T1>
受限名称:含有::符号
版权声明:本文为博主原创文章,未经博主允许不得转载。