【Bug记录】编译检查:expression后出现意外标识符

简介: 【Bug记录】编译检查:expression后出现意外标识符

项目场景:

在写模拟vector时遇到的bug,整体我当时写的vector情况如下:


问题描述

语法报错:

template<class T>
void print_vector(const vector<T>& v)
{
  for (size_t i = 0; i < v.size(); i++)
  {
    cout << v[i] << " ";
  }
  cout << endl;
  vector<T>::const_iterator it = v.begin();
  //auto it = v.begin();
  while (it != v.end())
  {
    cout << *it << " ";
    ++it;
  }
  cout << endl;
}

原因分析:

这里是因为编译器在编译时候进行语法检查,不确定iterator是一个类型还是类内的静态变量,因此报出了语法错误的提示。


解决方案:

明确告诉编译器这是一个类型,在前面加typename即可。


EOF

相关文章
|
自然语言处理 安全 C++
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
9166 4
|
编译器
(9)Qt中信号与槽重载的解决方案
本文介绍了在Qt中处理信号与槽重载问题的三种解决方案:使用函数指针、Qt提供的QOverload类和Qt4的宏方式。
564 3
|
JavaScript 前端开发 Linux
QCefView初步使用
QCefView初步使用
904 0
|
编解码 监控 网络协议
一文读懂以太网与CANoe的配置
一文读懂以太网与CANoe的配置
一文读懂以太网与CANoe的配置
【Elastic知识简报】: kibana如何开启中文
我们在使用kibana,特别是在设置数据看板时如果英文水平不足,常常会有无法准确设置图形、指标的问题,那么如何将kibana设置为中文界面呢
1886 0
【Elastic知识简报】: kibana如何开启中文
|
8月前
|
前端开发 JavaScript
什么是深拷贝;深拷贝和浅拷贝有什么区别;深拷贝和浅拷贝有哪些方法(详解)
浅拷贝适用于只复制对象的第一层属性,且这些属性不是引用类型。深拷贝适用于需要完全独立的副本,包括对象和数组的嵌套结构。选择哪种拷贝方式取决于你的具体需求和场景。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 安全 NoSQL
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(二)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
948 1
(7)Qt中的自定义槽(函数)
这篇文章介绍了在Qt中如何定义和使用自定义槽函数,包括类成员函数、静态类成员函数、全局函数和lambda表达式作为槽函数的示例,以及使用lambda表达式时的注意事项。
437 2
(7)Qt中的自定义槽(函数)
|
开发工具 git
Vcpkg安装指定版本包或自定义安装包
Vcpkg安装指定版本包或自定义安装包
2313 0
|
开发框架 Java 开发者
processing完整教程
本文提供了一个关于Processing的完整教程,包括下载、启动Processing、基本编程示例、颜色使用以及如何打印调试信息,适合初学者快速上手Processing编程。
1459 2
下一篇
开通oss服务