当前位置: 首页 > ds >正文

STL模版在vs2019和gcc中的特殊问题

任何时候在模板(template)中使用一个嵌套从属类型名称, 需要在前一个位置, 添加关键字typename;

比如下面程序中使用迭代器类型时,就要使用typename.虽然在vs2010 和vs2015中没有错误,但在VC++2019和gcc编译器中,都会报错。

#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <list>
#include <Windows.h>using namespace std;string line(50, '-');template <typename T>
void printInf(const list<T>& object)throw() {/* vs2019  gcc 中定义const_iterator前面必须加 typename* typename list<T>::const_iterator */typename list<T>::const_iterator citor = object.begin();for (; citor != object.end(); citor++) {cout << *citor <<endl;}cout << endl;cout << "size: " << object.size() << endl;cout << line << endl;return;
}class Student {
public:Student() {cout << "默认构造函数调用!" << endl;this->m_name = "***";this->m_age = 0;}Student(string name,int age) {cout << "带参构造函数调用!" << endl;this->m_name = name;this->m_age = age;}Student(const Student& stu) {cout << "拷贝构造函数调用!" << endl;this->m_name = stu.m_name;this->m_age = stu.m_age;}~Student() {cout << "析构函数调用!" << endl;}friend ostream& operator<<(ostream& out, const Student& stu);
private:string m_name;int m_age;
};ostream& operator<<(ostream& out, const Student& stu) {out << stu.m_name << "  年龄: " << stu.m_age ;return out;
}int main() {Student s1("对小帅", 19);Student s2("旺达", 21);Student s3("李小", 29);Student s4("谨记帅", 24);Student s5("常常", 22);Student s6("呼呼", 23);cout << line << endl;list<Student> stuList;stuList.push_back(s1);stuList.push_back(s2);stuList.push_back(s3);stuList.push_back(s4);stuList.push_back(s5);stuList.push_back(s6);cout << line << endl;printInf(stuList);system("pause");return 0;
}
http://www.xdnf.cn/news/20463.html

相关文章:

  • STM32项目分享:基于物联网的健康监测系统设计
  • 基于STM32的智能宠物屋系统设计
  • 人工智能学习:什么是seq2seq模型
  • Java全栈开发工程师的面试实战:从基础到复杂场景的技术探索
  • Compose笔记(四十九)--SwipeToDismiss
  • RabbitMQ工作模式(下)
  • 贪心算法应用:蛋白质折叠问题详解
  • Eureka与Nacos的区别-服务注册+配置管理
  • AI模型测评平台工程化实战十二讲(第一讲:从手工测试到系统化的觉醒)
  • 力扣29. 两数相除题解
  • Qt资源系统学习
  • 【继承和派生】
  • 【Flask】测试平台开发,重构提测管理页面-第二十篇
  • 把装配想象成移动物体的问题
  • java基础学习(五):对象中的封装、继承和多态
  • C++经典的数据结构与算法之经典算法思想:排序算法
  • phpMyAdmin文件包含漏洞复现:原理详解+环境搭建+渗透实战(windows CVE-2014-8959)
  • 吴恩达机器学习(七)
  • 综合安防集成系统解决方案,智慧园区,智慧小区安防方案(300页Word方案)
  • 《2025国赛/高教杯》C题 完整实战教程(代码+公式详解)
  • 关于连接池
  • 【PostgreSQL】如何实现主从复制?
  • 网络原理-
  • 在Ubuntu平台搭建RTMP直播服务器使用SRS简要指南
  • Qt 基础教程合集(完)
  • 分布式数据架构
  • 硬件开发_基于物联网的老人跌倒监测报警系统
  • 数据结构——栈(Java)
  • MySQL数据库约束和设计
  • 附050.Kubernetes Karmada Helm部署联邦及使用