今天在代码里看到了这样一段代码:

typedef typename RefBase::weakref_type weakref_type;

起初一直搞不懂为什么要加个typename,后来搜索了一下才知道这个关键字是有目的的:

如果不加这个关键字,编译器就不知道RefBase::weakref_type到底是个什么东西?可能是静态成员变量,也有可能是静态成员函数,也有可能是内部类。

加上这个关键字等于手动告诉编译器:RefBase::weakref_type 就是一个类型。

例:

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 ;
}

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

C++中的typedef typename 作用的更多相关文章

  1. C++ typedef typename 作用

    C++ typedef typename 作用 C++的一些语法让人看着费解,其中就有: typedef typename std::vector<T>::size_type size_t ...

  2. 【转】C++ typedef typename 作用

    转:https://blog.csdn.net/zhangxiao93/article/details/50569924 and GOOD: https://blog.csdn.net/vanturm ...

  3. typedef typename的用法

    我自己最后在这篇文章里理解:[C++]typedef typename什么意思? typedef typename A::a_type b_type; 其中typename是告诉编译器A::a_typ ...

  4. C++ typedef typename

    [cpp] view plaincopy template<typename T> class A { public: typedef T a_type; }; template<t ...

  5. SQLSERVER中NULL位图的作用

    SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...

  6. PHP中的header()函数作用

    PHP 中 header()函数的作用是给客户端发送头信息. 什么是头信息?这里只作简单解释,详细的自己看http协议.在 HTTP协议中,服务器端的回答(response)内容包括两部分:头信息(h ...

  7. 浅析python 中__name__ = '__main__' 的作用

    引用http://www.jb51.net/article/51892.htm 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码 ...

  8. log4net日志在app.config中assembly不起作用

    log4net 1.2.15.0日志在app.config中assembly不起作用,必须 1.手动调用方法log4net.Config.XmlConfigurator.Configure()来初始化 ...

  9. URL中“#” “?” &“”号的作用

    URL中"#" "?" &""号的作用   阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twit ...

随机推荐

  1. jquery .live() .delegate() .bind() .click()区别

    什么是.live()? 除了让你对Dom元素现在和将来绑定事件之外,.live() 方法和.bind()方法很像.你可以用.live()方法对没有存在的Dom节点绑定事件.考虑下面的情况. 当用户要离 ...

  2. 使用mapreduce来分析网站的log日志

    近日,有人和我说分析log日志. 之前,就写过,但是忘了总结了,找了半天也没有找到,看了以后要将东西整理了. 无奈,在网上收拾,看到这个人写的,索性,就搬过来,待我找到我写的,在一块补充一下! 所有网 ...

  3. 使用u盘安装os x系统

    从 App Store 下载 OS X 安装器 请执行以下步骤下载要安装的 OS X 版本. 1. 从 Apple 菜单中,选取“App Store”. 2. 按住 Option 键并点按“已购项目” ...

  4. React(0.13) 定义一个动态的组件

    1.因为jsx将两个花括号之间的内容渲染为动态值,只需要引用对应的变量即可 <!DOCTYPE html> <html> <head> <title>R ...

  5. OAuth的机制原理讲解及开发流程(转)

    1.OAuth的简述 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全.开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是 ...

  6. Centos6.5使用yum安装mysql——快速上手必备(转)

    第1步.yum安装mysql[root@stonex ~]#  yum -y install mysql-server安装结果:Installed:    mysql-server.x86_64 0: ...

  7. Linux下安装LAMP(Apache+PHP+MySql)和禅道

    1.更新yum源: yum update -y 2.安装Apache+PHP+MySql yum install httpd mysql-devel mysql-server mysql-php ph ...

  8. 【js】在js中加HTML注释标签的原因?

    <script type="text/JavaScript"> <!-- js代码 //--> //就是这句,为什么还要在-->前加上js注释 < ...

  9. 《JAVA与模式》之原型模式(转载)

    原型模式其实就是java的拷贝机制 原文出处:http://blog.csdn.net/zhengzhb/article/details/7393528   定义:用原型实例指定创建对象的种类,并通过 ...

  10. golang ---image

    package main import ( "image" "image/color" "image/gif" "os" ...