一、Typeid
Typeid是一个类型运算符,用于获取某个变量或者类型的名字。
使用格式:typeid(int)或typeid(i+1)
例如:
typeid(double).name();//获取int类型名,结果为“double”。
typeid(2)!= typeid(2.0);//比较表达式类型,结果为true。

二、Mutable
Mutable的含义是可变的,和const关键字相对,用于修饰常成员函数,告知编译器可以修改这个变量。
使用格式:mutable int var;//类内声明
例如:
class MyClass
{
     mutable int member;
     void constFun()const
     {
         member=0;
     }
};

三、Volatile
Volatile的意思是易变的,编译器在编译时期可能不能获取变量是否被多个线程或者进程修改的信息,用于确保一个变量被多个线程操作的原子性。
使用格式:
volatile int a;

四、Explicit
Explicit的含义是显式的,它和C++中的隐式转换相关。例如:
double a=100;
编译器会自动将整数100转化为浮点类型。对于用户数据类型,C++提供了转换构造函数和类型转换函数实现用户数据类型和内置类型的相互转换,而explicit是因为转换构造函数而存在的。下面给出一个转换构造函数的例子:
class A
{
public:
       A(int x)
       {
       }
};
void fun(A a)
{
}
fun(1);
最后的函数调用语句是合法的,虽然fun只接受A类型的参数,但是因为A的构造函数除了初始化A外,还提供了整数转换为A类型的方式——转换构造函数。但是有些情况下,这样做可能是不利的,比如fun可能有单独处理整形参数的重载,或者fun根本不需要转换构造函数生成的对象。

五、Likely和Unlikely
Likely() 与 Unlikely()是linux内核中定义的两个宏。用于人为告诉编绎器一些分支预测信息“exp==c”是很可能发生的”。likely,执行if后面语句的可能性大些,编译器将if{}是的内容编译到前面;使用unlikely,执行else后面语句的可能性大些,编译器将else{}里的内容编译到前面。这样有利于cpu预取,提高预取指令的正确率,因而可提高效率。
例如:
if(likely(foo))  //认为foo通常为1
if(unlikely(foo)) //认为foo通常为0

一些罕见的c++关键字相关推荐

  1. 《C#本质论(第4版)》一1.2 C#语法基础

    本节书摘来异步社区<C#本质论(第4版)>一书中的第1章,第1.2节,作者: [美]Mark Michaelis , tEric Lippert译者: 周靖 责编: 杨海玲,更多章节内容可 ...

  2. 在Java中使用final关键字可以提高性能吗?

    本文翻译自:Does use of final keyword in Java improve the performance? In Java we see lots of places where ...

  3. 6月数据库排行:PostgreSQL和MongoDB分数罕见下降

    DB-Engines 数据库流行度排行榜 6 月更新已发布,排名前二十如下: 总体排名和上个月相比基本一致,其中排名前三的 Oracle.MySQL 和 Microsoft SQL Server 也是 ...

  4. 易贝按关键字搜索EBAY商品 API 返回值说明

    请求参数 请求参数:q=shoe&start_price=&end_price=&page=&cat=&discount_only=&sort=& ...

  5. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  6. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  7. volatile关键字之全面深度剖析

    引言 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字 ...

  8. mysql屏蔽关键字实现方法_PHP屏蔽过滤指定关键字的方法

    本文实例讲述了PHP屏蔽过滤指定关键字的方法.分享给大家供大家参考.具体分析如下: 实现思路: 一.把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少. 二.PHP读取关键字文本,存入一 ...

  9. Java 静态变量,静态方法,静态常量(java static 关键字)

    Java 静态变量,静态方法,静态常量  就是变量 ,方法,常量前面添加了static 关键字 为什么要使用静态的呢 有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main ...

最新文章

  1. 前后端分离实践(试探篇)
  2. QEMU — I/O QoS 的实现方式
  3. cubic算法优化_TCP拥塞控制算法 — CUBIC的补丁(七) | 学步园
  4. error while loading shared libraries:libmysqlclient.so.18 错误
  5. 深度学习(14)TensorFlow高阶操作三: 张量排序
  6. 难以摸透的直男脑回路......
  7. 我的内核学习笔记16:海思Hi3516平台PWM使用记录
  8. learning rate 学习速率
  9. 【鸿蒙学院】鸿蒙(HarmonyOS)IDE迎来重大更新,新特性足以让你尖叫!
  10. Redisson封装及应用实例
  11. RESTful的特点分析
  12. Redis底层数据结构介绍
  13. java木板接水问题_木作施工常见的问题汇总,详解,避免留下遗憾
  14. mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
  15. 如何用arcgis分析点到点的距离
  16. Java千问:开发Java程序为什么要配置环境变量?
  17. 节点网络计划图计算机,工程网络计划(网络图)
  18. 电信运营商知多少(美国篇)
  19. chrome 新标签页中打开 快捷键 - 快速打开页面的快捷键
  20. Windows权限设置

热门文章

  1. 内存寻址:逻辑地址到物理地址转化
  2. Google收购Moto:天使还是魔鬼?
  3. 培训班出来的人后来都怎么样了?(一)
  4. CentOS7配置代理
  5. 企业专线传输网络与普通宽带的对比
  6. Silverlight 2 打造饭否Show
  7. 奥林匹克计算机竞赛保送,奥数再见!清北保送生为什么都选信息学奥赛
  8. 解决安卓android加载https页面不能正常显示问题
  9. Java爬虫-WebMagic爬取博客图片(好色龍的網路觀察日誌)
  10. Adobe软件安装错误127替代方案