nullptr 与 constexpr】的更多相关文章

nullptr   nullptr出现的目的自然是替换NULL的低位.C++可能会将NULL.0视为同一种东西.这取决于编译器是如何定义的,有的编译器定义NULL为 ( (void * )0) ,有的直接定义为0,这样的化在程序中可能会出现意想不到的错误,例如它会破坏函数的重载功能,考虑下面的重载函数 void function(char *p); void function(int x); 那么当调用 function(0)时将会调用哪一个函数呢?这可能会在不同编译器产生不同结果.C++11引…
总述     又来更新了,今天带来的是nullptr空指针常量.constexpr(常量表达式)C++的两个用法.Result result_fun = nullptr;constexpr static uint32_t try_times = 100;这是两个在工作中常用的C++操作,但是你知道nullptr和constexpr由来以及它们的更多用法吗? 下面听我一一道来. 作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:羽林君 一.nullptr C++11要引入nullptr?它与N…
http://blog.csdn.net/cnsword/article/details/8034947 公司可以使用c++11.看大牛的代码模仿使用,所以现在已经不知道什么使用的是c++的语法还是c++11的语法了...不知道算不算是一种悲哀 C++11对关键字进行了修订,加入了nullptr.constexpr.decltype.default.static_assert等,同时原有的关键字(auto,using,extern)含义和用途进行了修订.在这里主要了解一下对auto.using.…
1.auto auto是旧关键字,在C++11之前,auto用来声明自动变量,表明变量存储在栈,很少使用.在C++11中被赋予了新的含义和作用,用于类型推断. auto关键字主要有两种用途:一是在变量定义时根据初始化表达式自动推断该变量的类型,二是在声明或定义函数时作为函数返回值的占位符,此时需要与关键字decltype连用. 1.1用法示例 (1)auto用于推断变量类型示例. auto i = 42; //i is an int auto l = 42LL; //l is an long l…
array array本身内容较少,日常使用也不是很多,里面也没有很高深的技巧 1 array的基本架构 了解array的架构需要一个额外的语法知识: int a[100]; int [100]b; // error typedef int T[100]; T c; // success…
深入理解C++中的mutable关键字 mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设置的.被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中. 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的.但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰.…
双向链表 有关链表的知识可以点击我上篇文章这里就不再赘述LinkedList 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点.一般我们都构造双向循环链表. 双向循环链表的可以点击我这篇文章这里就不再赘述DoubleLoopLinkList 添加 头添加 void addFirst(const T &e) { //新建一个节点让它前驱指向头,后继指向头的后继然后再让头的后继…
#include <iostream> using namespace std; int main() { using cullptr = const unsigned long long *; //C++11新变量类型long long;constexpr unsigned long long * 为非法 typedef wchar_t * wchptr; /* 使用using或typedef声明的类型别名的变量实例初始化时,不同类型变量不可使用","写在同一行 如://…
常量表达式:值不会改变并且在编译过程就能得到计算结果的表达式. 字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式. 一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定: ;//max_files是常量表达式 ;//limit是常量表达式 ;//staff_size不是常量表达式 const int sz = get_size();//sz不是常量表达式 尽管staff_size的初始值是个字面值常量,但由于它的数据类型只是一个普通int而非const int…
常量表达式 常量表达式是指值不会改变且在编译阶段就能得到计算结果的表达式(两点要求) ; //是常量表达式 ; //是常量表达式 "; const int siz=s.size(); //不是常量表达式 ; //不是常量表达式 const int sz = get_size(); //不是常量表达式,因为尽管sz本身是一个常量,但是它的值直到程序运行时才能获得 constexpr(c++11) c++11允许将变量声明为constexpr类型让编译器来验证变量是否为一个常量表达式 constex…