C++重点实用技术
文章平均质量分 95
重点介绍各类实际C++工程中可能用到,比较有价值但又有一定门槛的C++技术
wxj1992
这个作者很懒,什么都没留下…
展开
-
C++11 类型支持之type traits
如果你是一个c++模板用户,大概率多多少少都接触过type traits这个概念,直译就是类型萃取,根据名字也能猜到是用于获取类型的,在c++ 11之前,stl就已经用到了相关技术了,比如迭代器使用相关的类型获取,《STL 源码剖析》有详细介绍,有兴趣的可以去看看。c++ 11更是引入了一个专门的头文件<type_traits>用来做type traits的相关事情,本篇就来聊聊type_traits。原创 2022-01-16 14:18:25 · 7621 阅读 · 1 评论 -
C++编译期分支选择相关技术
程序员写的代码里,最核心的内容之一就是根据不同的条件判断执行不同的逻辑分支,也就是所谓的if else,而分支判断又可以分为运行时和编译期两种,本篇文章将介绍能够实现编译期分支选择的相关技术,包括函数重载、标签分发(tag dispatch)、模板特化、模板偏特化、if constexpr。原创 2022-01-31 21:37:01 · 3070 阅读 · 2 评论 -
C++同步机制之条件变量(std::condition_variable)
文章目录一、使用机制1.1 涉及的主要概念1.2 wait线程中的用法1.3 notify线程中的用法二、成员函数2.1 唤醒函数2.2 等待函数三、为什么需要互斥锁四、虚假唤醒五、示例对多线程编程有了解的对条件变量(condition_variable)这个概念一定不陌生,相较于另一种常见的同步机制互斥锁,条件变量是一种更高层次的同步手段,互斥锁用于保护一段临界区,也就是各个线程互斥地去访问同一块资源,这是一种很简单直接的同步手段,可以cover住很大一类的同步场景,比如多线程修改一个非线程安全的uno原创 2021-05-16 15:56:58 · 6592 阅读 · 3 评论 -
Modern C++核心内容(一)—— 函数模板和auto关键字的类型推导
目录一、函数模板中的类型推导2.1 ParamType是引用或者指针,但不是万能引用(Universal Reference)2.2 ParamType是万能引用(Universal Reference)2.3 ParamType既不是指针,也不是引用二、auto类型推导三、一些比较边角的情况说到C++的类型推导,绝大部分的C++ programmer都不陌生,多多少少在编码的过程中都会用到,尤其是进入C++ 11之后,就算不用函数模板也免不了会用auto,绝大部时候,即便不了解内部的推导规则,往往也能得原创 2021-11-28 22:56:43 · 1529 阅读 · 0 评论