摘要: volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。 如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象,这就是著名的缓存 阅读全文
posted @ 2018-08-31 16:05 夜行过客 阅读(1536) 评论(0) 推荐(1) 编辑
摘要: mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,被const关键字修饰的函数的一个重要作用就 阅读全文
posted @ 2018-08-31 15:17 夜行过客 阅读(54659) 评论(2) 推荐(11) 编辑
摘要: 今天在代码里看到了这样一段代码: 起初一直搞不懂为什么要加个typename,后来搜索了一下才知道这个关键字是有目的的: 如果不加这个关键字,编译器就不知道RefBase::weakref_type到底是个什么东西?可能是静态成员变量,也有可能是静态成员函数,也有可能是内部类。 加上这个关键字等于手 阅读全文
posted @ 2018-08-31 10:53 夜行过客 阅读(3338) 评论(0) 推荐(2) 编辑