V
主页
【C++标准库】自己动手实现std::optional容器
发布人
小彭老师C++实战演练系列之“自己实现所有STL容器”。比起艰深的STL源码解读,不如自己动手实现STL,更能生动直观地掌握底层技术细节,破除模棱两可心理,了解常见的最佳实践。这是本系列试水的第六课,自己实现std::optional可选值容器。本期视频中我们介绍了如何借助tag类、union惰性初始化、万能引用、完美转发等技巧,实现一个可以存放任意类型的可选值容器。最终借助所学知识,封装出了和标准库一样的可选值容器std::optional,完美支持存放任意类型的值,同时支持为空。in_place和nullopt等tag类重载构造函数的妙用真是醍醐灌顶,我们不仅实现了value、value_or、emplace、*和->运算符,还实现了C++23新增的transform、and_then、or_else,彻底迈向函数式!介绍了C++17的CTAD机制,感受if-auto语法的简洁有力。最终,还顺便介绍了名字空间的ADL机制如何帮助多态,并实现了自适配swap。且C++14就能编译,如果你的编译器无法升级到C++17,可以集成小彭老师的Optional类,直奔C++23。如果反响较好,点赞超过300立即加更下一期。 课程的源码已经全部开源:https://github.com/parallel101/stl1weekend
打开封面
下载高清视频
观看高清视频
视频下载器
被双笙子佯谬拉黑了。4寸屏幕扣了好久的字
3分钟掌握C++17 optional
TCP/IP 概述 by 陈硕
【C++项目实战】实现一个JSON解析器
【C++标准库】自己动手实现vector容器
Cpp工程经验_陈硕
【C/C++进阶】宏函数实用指南
【豆瓣9.4】想要写好C++程序,可能并不需要了解C++的全部细节
【C++17新特性】内存池与多态分配器(std::pmr::memory_resource)
【公开课】现代C++进阶:模板元编程与函数式
【C++17】小彭老师陪你从零手搓HTTP服务器
【C++】从零搭建聊天服务器(面试加分必备实战项目)
现代C++教程 2023
【录播】现代C++中的高性能并行编程与优化(持续更新中)
【C++11】自己动手实现unique_ptr智能指针,都有哪些难点?
【C++11】深入剖析lambda仿函数的原理,自己动手实现std::function容器
【公开课】现代CMake模块化项目管理指南【C/C++】
【C++模板课】闭源软件能否元编程?模板编译慢,无法分离,容易代码膨胀?variant的空间利用效率低?小彭老师一一解答
【C++源码分析】微信二维码闪退,深扒源码后,竟发现远不止这一处bug!
【C++】type_traits与SFINAE用法教学,检测是否有某成员函数
【C++】malloc/new追踪,可视化内存碎片,监测内存泄漏
【Vim命令全解】新人如何入坑?教你自定义快捷键快速编译运行程序,并定位编译出错点
【C++ STL】手搓红黑树有多困难?自制标准库系列之map与set(最难的一集)
【C++】速通面向对象设计模式(1):策略、工厂、迭代器、适配器、享元、代理
【C++20】编译期检测所有未定义行为和内存泄漏,不借助任何外部工具
【C++】游戏开发常用的设计模式,高手都这样写?单例模式、组件模式、原型模式、访问者模式等
【C++】类型擦除 + 工厂模式,告别 if-else
【公开课】从零开始打造3D游戏引擎(第四集:GLSL 着色器语言入门与顶点属性管理)
谷歌前系统设计师现场设计抖音系统架构 Google system design interview Design TikTok
【C++】Google LevelDB源码阅读方法
【C++11】区分左值、亡值、纯右值,及他们的引用
【全网最全】28种C++未定义行为,完全介绍(附检测方法教学)
【现代C++】函数式编程优雅实现信号槽
【C++20】把epoll封装成协程库,支持异步读写TCP套接字,有手就行(中)
【RAII+异常】小彭老师解题+思路详解!mq白的现代C++习题集(第二期)
【现代C++】静态反射实现自动JSON序列化
c++文本高速对比工具
【GCC】C/C++初学者建议开启这些警告,编译期就排除大量危险隐患,提升代码质量
【C++/OpenGL】三体运动物理仿真
【C++】局部变量初始化,推荐用哪种写法?最不容易错?