C98或C99中的库为:<cassert> 或<assert.h>运行时断言,故明思议是当程序在运行的时候才作为判决,可以认为是对参数的有效性的判断。而静态断言,是对参数的条件判断提前做了,在预编译的时候进行完成的。如://demo1.cpp
#include <cassert>usingnamespace std;char *arrayAolloc(int n){assert(n>0); returnnewchar [n];
}int main(){char * a = arrayAolloc(0);return0;
}//gcc demo1.cpp -omainassert(n>0); 该条件只会在当arr...
1、结构体内直接赋初始值struct Student{char* name = nullptr;unsigned int age = 15;int number = 21509111;
};如此一来,所有声明的新结构体对象就是默认上面的值。原文:https://www.cnblogs.com/fuqia/p/9538273.html
编译环境:Windows 10 + elclipse +gcc-8.1.01、类型推导C++11 引入了 auto 和 decltype 这两个关键字实现了类型推导,由编译器在编译过程中完成类型推断过程。区别: 1)语法格式区别auto varname = value; // auto 根据=右边的初始值 value 推导出变量的类型,且varname必须初始化。
decltype(exp) varname = value; // decltype 根据 exp 表达式推导出变量的类型,跟=右边的 value 没有关系。原则上,exp ...
自己一直用的是C++98规范来编程,对于C++11只闻其名却没用过其特性。近期因为工作的需要,需要掌握C++11的一些特性,所以查阅了一些C++11资料。因为自己有C++98的基础,所以从C++98过渡到C++11并不算特别吃力,读了一些书籍后,算是对C++11有了个比较基础的理解,感觉程序员还是要经常保持新语言新特性的更新,现在 C++ 标准都出到C++17了!这篇文章就是对C++11一些常用新特性的一些总结,以C++98和 C++11在语法上的差异来突出C++1...
在C++中,左值(lvalue)是可以获取其地址的一个量。由于经常出现在赋值语句的左边,因此称之为左值。例如一个有名称的变量。 例如:int a=10;//a就是一个左值。 传统的C++引用,都是左值引用。例如:int &ra=a;将ra关联到a。这就是左值引用。 C++11,新增了右值引用的概念。用&&代表右值引用。 首先我们来看一下什么叫做右值。可以说所有不是左值的量都是右值。例如文本,临时对象或者临时值(都是不能获取地址的量)。 ...
本篇文章由:http://www.sollyu.com/c11-new-lambda-function/文章列表本文章为系列文章【C++11】新特性——auto的使用 http://www.sollyu.com/c11-new-features-auto/【C++11】新特性——Lambda函数 http://www.sollyu.com/c11-new-lambda-function/说明在标准 C++,特别是当使用 C++ 标准程序库算法函数诸如 sort 和 find,用户经常希望能够在算法函数调用的附近定义一个临时的述部函数(又称谓词函数,predicate function)。由于...
如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr。在学习weak_ptr之前最好对shared_ptr有所了解。
1、为什么需要weak_ptr?
在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识。我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以指向同一个动态对象,并维护了一个共享的引用计数器。对于引用计数法实现的计数,总是避免不了循环引用(或环形引用)的问题,shared_ptr也不例...
在C++中在C++中for循环能够使用相似java的简化的for循环,能够用于遍历数组,容器,string以及由begin和end函数定义的序列(即有Iterator)#include <iostream>
#include <map>
#include <string>
using namespace std;int main()
{ map<string, int> ms;ms.insert(make_pair("a", 1));ms.insert(make_pair("b", 2));ms.insert(make_pair("c", 3));ms.insert(make_pair("d", 4));for (auto itr: ms)cout << itr.first << ":" << itr.sec...
转载:https://www.cnblogs.com/feng-sc/p/5710724.html#title11
std::bind和std::function也是从boost中移植进来的C++新标准,这两个语法使得封装可执行对象变得简单而易用。此外,std::bind和std::function也可以结合我们一下所说的lamda表达式一起使用,使得可执行对象的写法更加“花俏”。我们下面通过实例一步步了解std::function和std::bind的用法:Test.h文件//Test.h 示例代码1.0 http://www.cnblogs.com/feng-sc/p/571072...
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于TC1主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个...
经过作者的不断迭代,一本书往往会先后发布很多个版本,其中每个新版本都是对前一个版本的修正和更新。C++ 编程语言的发展也是如此。截止到目前(2020 年),C++ 的发展历经了以下 3 个个标准:
2011 年,新的 C++ 11 标准诞生,用于取代 C++ 98 标准。此标准还有一个别名,为“C++ 0x”;2014 年,C++ 14 标准发布,该标准库对 C++ 11 标准库做了更优的修改和更新;2017 年底,C++ 17 标准正式颁布。
C++11 是第二个真正意义上的 ...
/*shared_ptr 与weak_ptr
*/
#include <memory>
#include <iostream>void foo_construct()
{int * p = new int(3);std::shared_ptr<int> sptr(p);std::shared_ptr<int> sptr2(new int(4));std::shared_ptr<int> sptr3 = sptr2; //指针引用加1std::shared_ptr<int> sptr4 = std::make_shared<int>(5);/*{std::shared_ptr<int> sptr5(p);{std::shared_ptr<int> sptr6(p);}}//这么写会报错,原因生活会,因为5和6都是指向同一个对象,...
运行结果: 附上例代码:
//小问学编程
//左值:在内存中有确切位置的值
//右值:是一个暂时存在的值
#include <iostream>
using namespace std;int main()
{int a(10);//a在内存中有地址,数据是10int b(11);//b在内存中有地址,数据是11int c=a+1;//&(a+1)没有内存地址,是一个临时的值,是一个右值。仅短暂存在于寄存器中int d=a+2;//int& f=c; //左值引用&——是对内存值的引用int&& g=a+3;//右值引用&&——是对暂时存在值的...
标题: 【C++ Primer】C++11特性总结 作者: lx青萍之末 原文链接: https://blog.csdn.net/daaikuaichuan/article/details/79240196
文章目录
* 1、long long 类型
* 2、列表初始化
* 3、nullptr 空指针
* 4、constexpr变量
* 5、constexpr函数
* 6、using类型别名
* 7、auto类型指示符
* 8、decltype类型指示符
* 9、范围for语句
* 10、尾置返回类型
* 11、强枚举类型
* 12、=default 生成默认构造函数
* 13、类对象成员的类内初始化...
C++2b 功能特性
请注意,随 C++2b 标准草案的逐步推进,此列表可能会发生变化。
C++23 核心语言功能特性
C++23 功能特性提案GCCClangMSVCApple ClangEDG eccpIntel C++IBM XLC++Sun/Oracle C++Embarcadero C++ BuilderCrayPortland Group (PGI)Nvidia nvcc[折叠](有符号) size_t的字面量后缀P0330R8C++23 功能特性提案GCCClangMSVCApple ClangEDG eccpIntel C++IBM XLC++Sun/Oracle C++Embarcadero C++ BuilderCrayPortland Grou...