如何解决C ++中typename关键字的用例
我想知道为什么在两种情况下我们是否需要使用 typename 关键字:
template <T>
void foo(void)
{
std::vector<T> v;
typename std::vector<T>::iterator it;
}
在使用迭代器的情况下,如果未指定typename,则编译器会向我们发送错误消息。
谢谢!
解决方法
根据C ++ 17标准(名称解析为17.7)
2模板声明或定义中使用的名称,即 除非依赖模板参数,否则除非命名类型,否则除非 适用的名称查找找到类型名称或名称合格 通过关键字typename。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。