template<typename T> class A { public: typedef T a_type; }; template<typename A> class B { public: //typedef A::a_type b_type; typedef typename A::a_type b_type; }; int main() { B<A<int>> b; return 0; }

如果把注释取消,就会产生编译错误。

必须使用关键字typename的原因是T是一个template parameter。在实例化之前,编译器对T一无所知,因此不知道A::a_type 代表的是一个type或是一个member function或是一个data member,使用typename可以告诉编译器这是一个type使得编译能顺利通过

[C++]typedef typename什么意思?相关推荐

  1. C++ typedef typename 作用

    C typedef typename 作用 vectorsize_type 为什么使用typename关键字 总结 C++ typedef typename 作用 C++的一些语法让人看着费解,其中就 ...

  2. typedef typename解释

    C++语言默认情况下,假定通过作用域运算符访问的名字不是类型,所以当我们要访问的是类型时候,必须显示的告诉编译器这是一个类型,通过关键字typename来实现这一点. typedef typename ...

  3. typedef和typedef typename

    原文地址: http://blog.chinaunix.net/uid-20437338-id-1946555.html typedef:是用于定义类型用的   1,为了简化,清晰.比如, vecto ...

  4. typedef typename

    所以根据上述两条分析, typedef typename RefBase::weakref_type weakref_type; 语句的真是面目是: typedef创建了存在类型的别名,而typena ...

  5. typedef typename的作用

    很多文章写的很长,讲了一大堆的东西不知道干什么,看得云里雾里的.简单的概念被搞复杂了. 重点: typedef 后面加一个typename的作用就是明确告诉编译器后面定义的类里面有这个类型,让它不要报 ...

  6. C++报错解决:error: ‘int’ is not a class, struct, or union type typedef typename _Sequence::value_

    我在使用C++的时候,遇到了如下报错: -> % g++ test.cpp In file included from /usr/include/c++/7/queue:64:0,from te ...

  7. 深入学习typedef和typename

    1.类型定义typedef 类型说明的格式为: typedef  类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整 ...

  8. typedef和typename的区别

    typename指示一个类型名,而非定义一个类型,以下声明了一个Seq::iterator类型的变量itr,其中Seq是一个模板实例化时才知道的类: typename Seq::iterator it ...

  9. typename typedef

    template<typename T> class A { public: typedef T a_type; }; template<typename A> class B ...

最新文章

  1. c++结构体定义和使用_【C语言更新】结构体的定义及使用
  2. HTML frameset 标签
  3. html5 canvas实现图片玻璃碎片特效
  4. Android之让手机能识别当前app为浏览器类型的APP
  5. qt制作一个画板_如何直接用Sketch制作动画|Sketch插件|
  6. 服务监控 Spring Boot Actuator 介绍
  7. STL之partial_sum
  8. 【设计模式】第二章 代理模式
  9. Gym 101206L Daylight Saving Time 根据年月日计算星期
  10. tomcat+路由器+oray
  11. exoplayer和mediaplayer的封装
  12. 揭秘Emotet恶意软件新变种幕后攻击者的运营模式
  13. 学术随笔(二):一篇好论文的标准
  14. Java开发16个经典面试问题
  15. vs2013设置winp#cap开发环境
  16. 芯片积累及封装(hdc1080、EL357N-G、74HC_HCT4052、XL6009、lm7805、LM393-D、irlr3410、BST-BMP280-DS001-19)
  17. android 方法映射,高通Android平台驱动层 MSM8916 键值映射方法
  18. 逆滤波和维纳滤波(附Matlab完整代码)
  19. 实现网站对IP地址的限制访问
  20. 开源流媒体服务器SRS环境搭建

热门文章

  1. u 只读 盘 突然_U盘变成只读,无法格式化,怎么办?
  2. k8s调试工具--busybox
  3. (深度学习快速入门)第三章第一节:多层感知器简介
  4. js,jQuery时间与时间戳相互转换
  5. 阿里云settings.xml配置
  6. 无公网IP远程黑群晖【内网穿透】
  7. 聚类分析 | MATLAB实现k-Means(k均值聚类)分析
  8. MacOS 10.15降级MacOS 10.14
  9. Collections的用法
  10. 经典CNN模型介绍及Pytorch实现