编译器不应该忽略依赖类型中缺少typename的错误。正确的写法应该是在依赖类型前加上typename关键字。下面是一个示例代码:
template
class MyClass {
public:
typename T::iterator begin(); // 必须加上typename关键字
};
在这个示例代码中,begin函数返回T类型中的iterator迭代器,因为T是一个依赖类型,所以必须在前面加上typename关键字,否则编译器会认为iterator是一个静态成员而不是T类型中的一个类型。