
C++11
文章平均质量分 93
jinzhu1911
认认真真干活,踏踏实实做事!
展开
-
C++外部模板
C++外部模板文章目录C++外部模板简介参考外部模板的需求外部模板的使用外部模板的使用注意事项外部模板应用举例简介C++外部模板是C++11中一个关于模板性能上的改进。参考深入理解C++11 (下载资源(带完整标签,高清):C++11新特性)外部模板的需求实际上,“外部(extern)”这个概念早在C的时候已经就有了。常见的情况,在一个文件a.c中定义了一个变量int i,而在另外一个文件b.c中想使用它,这个时候就会在没有定义变量i的b.c文件中做一个外部变量的声明。比如:// 声明原创 2021-09-05 14:38:19 · 828 阅读 · 0 评论 -
C++类模板实例化
C++类模板实例化文章目录C++类模板实例化1. 简介2. 类模板实例化2.1 隐式实例化(Implicit instantiation)2.2 显示实例化(Explicit instantiation)2.3 类模板中的静态成员1. 简介该文章主要总结C++类模板实例化的方法。类模板的实例化包含两种:隐式实例化(Implicit instantiation)显示实例化(Explicit instantiation)2. 类模板实例化类模板本身不是类型、对象或任何其他实体。仅包含模板定义的原创 2021-09-04 16:11:15 · 13599 阅读 · 0 评论 -
C++11 std::move
C++11 std::move 文章目录概述关键字```std::move```概述错误用例正确用例1正确用例2总结概述本篇博客根据深入理解C++11新特性解析与应用一书中的内容以及自己在使用std::move过程中的经验,总结形成该篇博客,将它整理形成知识。该书我已经高清书签版上传到优快云,为了防止不过,修改了文件名称,下载地址奉上。深入理解C++11新特性解...原创 2020-03-15 19:30:32 · 392 阅读 · 0 评论 -
C++11完美转发
C++11 完美转发 文章目录简介完美转发完美转发的定义使用“万能”引用引用折叠规则完美转发用例简介该篇博客主要介绍C++11中的完美转发,对完美转发的原理和使用方法进行介绍。完美转发完美转发的定义所谓完美转发(perfect forwarding),是指在函数模板中,完全依照模板的参数的类型,将参数传递给函数模板中调用的另外一个函数。比如:temp...原创 2020-03-13 23:00:11 · 524 阅读 · 0 评论 -
C++11变长模板
C++11变长模板 简介该篇博客主要介绍C++11中的变长模板,对变长模板的原理和使用方法进行介绍。本篇博客参考书籍深入理解C++11新特性解析与应用一书,非常推荐该书作为C++11学习的参考资料,英语好的话更推荐直接阅读C++官网中的关于C++11新特性的介绍。...原创 2020-03-13 18:40:58 · 452 阅读 · 0 评论 -
C++函数模板
C++ 函数模板 简介本文中的内容主要参考C++ Primer Plus(第6版)中文版一书中的内容。该篇博客主要根据自己使用模板的经验,结合书中的内容,总结函数模板的原理和使用方法。函数模板概述函数模板是通用的函数描述,它使用泛型来定义函数,然后可以使用具体的类型替换泛型。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。首先函数模板的定义参考下面代...原创 2020-03-12 22:08:17 · 220 阅读 · 0 评论 -
C++11就地初始化与列表初始化
C++11就地初始化与列表初始化 就地初始化简介在C++11之前,只能对结构体或类的静态常量成员就行就地初始化,其他的不行。如下代码所示:class Test{ private: static const int a=10; //yes int a=10; //no}在C++11中,结构体或类的数据成员在申明时可以直接赋予...原创 2020-03-11 10:09:13 · 630 阅读 · 0 评论 -
lambda函数
lambda是一种函数编程范型。C++是在C+11中开始支持lambda语法。lambda函数简介下面来看一下C++中使用lambda的语法形式:代码1int main() { int girls = 3, boys = 4; auto totalChild = [](int x, int y)->int{ return x + y; }; return t...原创 2019-09-25 09:29:34 · 346 阅读 · 0 评论 -
C++模板类型推导
模板类型推导对于模板函数来书,编译器需要根据实际传入的参数来推导模板类型T。例如,假设我们有下面这个模板函数:tempalte<typename T>void f(T& param); // param si a reference同时声明了这些变量:int x = 27; // x is an intconst int cx = x; // cx is ...原创 2019-09-23 22:37:46 · 1190 阅读 · 0 评论 -
C++11 类型推导decltype
重用匿名类型以下代码使用3种不同的匿名类型,decltype可以推导其类型并且进行重用。enum class{K1, K2, K3}anon_e; // 匿名的强类型枚举union { decltype(anon_e) key; char* name;}anon_u; // 匿名的unionstruct { int d; decltype(a...原创 2019-08-27 01:17:06 · 341 阅读 · 0 评论 -
C++11 类型推导 auto
静态类型和动态类型的区别静态类型的类型检查主要发生在编译阶段动态类型的类型检查主要发生在运行阶段关键字auto传统auto是一个存储类型指示符(storage-class-specifier),使用auto修饰的变量是具有自动存储期的局部变量,而C++11中auto是作为一个新的类型指示符(type-specifier),它声明的变量的类型必须由编译器在编译时期推导而得。int ma...原创 2019-08-26 22:45:46 · 599 阅读 · 0 评论 -
C++强类型枚举
传统枚举类型的缺点非强类型作用域 enum Type { General, Light, Medium, Heavy }; enum Category { General, Pistol, MachineGun, Cannon };由于General都是全局的名字,因此编译会报错。允许隐式转换为整型占用存储空间符号性不确定C++11引入的强类型枚举(strong-typed...原创 2019-08-20 23:11:18 · 480 阅读 · 0 评论