摘要: # 概述 C++的模板是泛型编程思想的一种实现。C++是强类型语言,处处强调类型。同样的加法运算,int和float的加法运算需定义**两个函数**(重载),而使用模板则可以只用一个函数(见下面示例)。 这类似我们面向对象所说的多态(定义加法运算,各个类型有不同的实现),所以是所谓静多态的一种实现方 阅读全文
posted @ 2023-07-17 11:01 寡人正在Coding 阅读(112) 评论(0) 推荐(0) 编辑
摘要: # 概述 ## 移动 移动(move)语义C++引入了一种新的内存优化,以避免不必要的拷贝。在构造或者赋值的时候,如果实参是右值(或者左值由std::move转换成右值),便会匹配移动语义的函数调用如下述举例的`Str(Str&& obj)`。 移动语义的本质是将资源(内存/句柄)转移给另一个对象, 阅读全文
posted @ 2023-07-15 15:05 寡人正在Coding 阅读(262) 评论(0) 推荐(0) 编辑
摘要: # 概述 lambda表达式,有时也被称为匿名函数。他提供了简短的,内联的函数对象。用法形式如: ``` [capture](parameters) -> return_type { body } ``` 具体用法如下文举例 它的实现是由编译器决定的,在我的编译器上他是通过创建一个匿名类,通过重载( 阅读全文
posted @ 2023-07-14 21:00 寡人正在Coding 阅读(102) 评论(0) 推荐(0) 编辑
摘要: # 概述 c++效率较高的一个原因是我们可以自己定制策略手动申请和释放内存,当然,也伴随着开发效率降低和内存泄漏的风险。为了减少手动管理内存带来的困扰,c++提出了智能指针,可以帮助我们进行内存管理,有三种: 1. `std::unique_ptr` 是一种独占所有权的智能指针,它不允许多个指针指向 阅读全文
posted @ 2023-07-14 16:21 寡人正在Coding 阅读(249) 评论(0) 推荐(0) 编辑
摘要: # 序言 习惯上,我们把C++11之前的C++语法特性称之为“传统C++”,而把c++11之后的语法特性称之为现代C++。有一种说法称C++为中级语言,因为它的特性介于低级语言(如各类汇编语言)和高级语言(Python、C#)之间--一般来说,它在运行效率上比高级语言要高,而在开发效率上又比高级语言 阅读全文
posted @ 2023-07-13 12:54 寡人正在Coding 阅读(341) 评论(0) 推荐(1) 编辑
摘要: # 概述 在c++11之前,c++并未对线程编程提供直接的支持。在c++11之后,支持了线程管理、同步、条件变量等支持。 在其他的c++库中(例如UE的线程库)还增加了多任务模型的抽象。 # 用法举例 参考测试项目的`modrenc_thread.cpp`文件 主要内容: - 线程的创建 - 使用f 阅读全文
posted @ 2023-07-13 12:54 寡人正在Coding 阅读(73) 评论(0) 推荐(0) 编辑
摘要: # 概述 c++ 的for循环在语法上有些刻板,近几个版本对此进行了优化,支持了基于范围的for循环 # 用法举例 参考测试项目代码`ModernCppTest/modrenc_range_for.cpp` 主要内容: - 数组遍历 - vector遍历 - 字符串遍历 - map遍历 ```CPP 阅读全文
posted @ 2023-07-13 12:53 寡人正在Coding 阅读(65) 评论(0) 推荐(0) 编辑
摘要: # 概述 constexpr修饰的变量、函数、对象构造函数表示在编译时就可以确定。 它经常用来计算一些编译期可以确定常数,和常数组成的表。比如编译时确定10000以内所有的素数,运行时用的时候直接查表。 #用法举例 参考测试项目代码`ModernCppTest/modrenc_constexpr.c 阅读全文
posted @ 2023-07-13 12:53 寡人正在Coding 阅读(49) 评论(0) 推荐(0) 编辑
摘要: # 概述 类型推导主要是依赖`auto`关键字和`decltype`关键字/运算符实现的,具体用法参考下面的例子。 二者特点: - `auto` 用于声明时推导遍历 - `decltype` 用于推导各种表达式, **decltype(var)中var也是一种称为变量表达式的表达式** - 二者都是 阅读全文
posted @ 2023-07-13 12:51 寡人正在Coding 阅读(188) 评论(0) 推荐(1) 编辑
摘要: ## 常用命令 [源链接地址](https://cloud.tencent.com/developer/article/1540697 "源地址") ### 线上查询及帮助命令 (2 个) - man 查看命令帮助,命令的词典,更复杂的还有 info,但不常用。 - help 查看 Linux 内置 阅读全文
posted @ 2023-06-05 09:41 寡人正在Coding 阅读(38) 评论(0) 推荐(0) 编辑