1、void*指针的使用,平时见得也很多了,至于为什么使用void* 指针,很多人有自己的见解,反正普通指针轻轻松松的转向void * 指针,但是void*指针转向其他的指针都要采用强制转换的。

2、static_cast强制转换举例

int xx = ;

cout<<"st "<<static_cast<double>(xx)<<typeid(xx).name()<<typeid(static_cast<double>(xx)).name()<<endl;

运行结果是

st 5intdouble

static强制转换的话,紧紧并不改变原来xx的类型的呀,但是整个的static_cast的转换才是真正的double

3、const_cast更加用于去const的强制类型转换,会多用于函数重载的过程中

4、有很多代码里存在字面值类型,其实提到字面值对应三个,算术类型,指针和引用。(nullptr作为一个神奇的存在,自己脑补吧)

5、预处理器和编译器,哈哈。

预处理名字是由预处理器来进行处理的,例如assert,NULL,这些东西根本不会等到编译的时候由编译器来管理,直接用预处理器来处理,典型的预处理变量是用#define来进行的,反正这些都是在预处理的阶段进行的,不用管它啦,最重要的是在使用assert这种进行调试的时候其实是不需要使用std的。因为预处理变量和命名空间没有任何瓜葛。

6、我们常常使用#define NDEBUG来进行控制assert的行为,但是记住了要想assert发挥作用,#define NDEBUG这句话必须要放在#include<cassert>前面,具体的详见头文件哈。

7、很多时候__func__宏我们是用不了的,为什么呢?因为这和编译器有关,有的编译器不支持这样的宏,悲哀!

8、有很多很难记的名字对我们来说却又很重要的术语。

decltype

int haha = ;
int hahaha = ;
const int &ii = haha;
decltype(ii) hehe = hahaha;
cout<<"hehe "<<hehe<<typeid(hehe).name()<<endl;

结果是hehe 1int

主要就是将ii的类型作为hehe的类型,ii本身是一种引用类型,话说引用类型必须要初始化

constexpr很多编译器实现不了的,新标准新挑战呀

c++11新的小猫腻的更多相关文章

  1. [转载] C++11新特性

    C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...

  2. C++11新特性——大括号初始化

    C++11之前,C++主要有以下几种初始化方式: //小括号初始化 string str("hello"); //等号初始化 string str="hello" ...

  3. Authing新功能——小程序扫码登录

    近期,Authing 发布了新功能--小程序扫码登录. 小程序扫码登录指使用Authing小程序身份管家在网页端或其它客户端执行微信登录,目前的SDK仅支持客户端JavaScript.其它语言若想使用 ...

  4. C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)

    因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...

  5. C++11新特性总结 (二)

    1. 范围for语句 C++11 引入了一种更为简单的for语句,这种for语句可以很方便的遍历容器或其他序列的所有元素 vector<int> vec = {1,2,3,4,5,6}; ...

  6. C++11新特性总结 (一)

    1. 概述 最近在看C++ Primer5 刚好看到一半,总结一下C++11里面确实加了很多新东西,如果没有任何了解,别说自己写了,看别人写的代码估计都会有些吃力.C++ Primer5是学习C++1 ...

  7. C++ 11 新特性

    C++11新特性:          1.auto          2.nullptr          3.for          4.lambda表达式          5.override ...

  8. 在C++98基础上学习C++11新特性

    自己一直用的是C++98规范来编程,对于C++11只闻其名却没用过其特性.近期因为工作的需要,需要掌握C++11的一些特性,所以查阅了一些C++11资料.因为自己有C++98的基础,所以从C++98过 ...

  9. c++11新标准for循环和lambda表达式

    :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-previ ...

随机推荐

  1. document.all.wb.ExecWB

      <%@ page language="java" pageEncoding="UTF-8"%>   <%@ taglib uri=&quo ...

  2. 51nod1265 四点共面

    题目链接:51nod 1265 四点共面 四个点构成的三个向量a,b,c共面的充要条件是存在不全为零的实数x,y,z满足x*a+y*b+z*c=0,然后想到线代了.. 其实就是三个向量的混合积为0:( ...

  3. Oracle 数据库特殊查询总结

    1. 查询本节点及本节点以下的所有节点: select * from table1 c start with c.p_id='0000000' connect by prior c.id=c.p_id ...

  4. guava学习--AsyncFunction

    AsyncFuntion接口与之前学习吃的使用Function和Functions进行对象转换有很密切的联系,AsyncFuction接口是Function接口的异步表现,AsyncFuction和F ...

  5. CodeForces #363 div2 Vacations DP

    题目链接:C. Vacations 题意:现在有n天的假期,对于第i天有四种情况: 0  gym没开,contest没开 1  gym没开,contest开了 2 gym开了,contest没开 3 ...

  6. (转)TortoiseSVN客户端重新设置用户名和密码

    在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了. 不过,如果 ...

  7. Linux系统程序的运行级别

    Linux系统有7个运行级别: 运行级别 描述 0 系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 1 但用户工作状态,root权限,用于系统维护,禁止远程登录 2 多用户状态(没有NFS ...

  8. IE下new Date不支持传参数的解决

    在FF gloogle浏览器中 用js实例化Date对象时 各种参数都可以换传啊. var date = new Date("2014-10-1 10:24:31"); var d ...

  9. Linq to entities 学习笔记

    Linq to  entities ---提供语言集成查询支持用于在概念模型中定义的实体类型. 首先可以根据http://msdn.microsoft.com/en-us/data/jj206878该 ...

  10. Bootstrap<基础十三> 按钮组

    按钮组允许多个按钮被堆叠在同一行上.当你想要把按钮对齐在一起时,这就显得非常有用.你可以通过Bootstrap 按钮(Button) 插件 添加可选的 JavaScript 单选框和复选框样式行为. ...