logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

12. C++17新特性-std::optional

本文详细解析了C++17引入的std::optional机制。作为类型安全的可选值容器,它解决了传统C++中魔术值、指针返回和pair返回等方案的缺陷。文章从历史痛点出发,通过代码示例展示了optional的优雅用法,深入剖析其基于栈联合体的零开销实现原理,包括延迟构造和就地初始化等特性。重点探讨了optional在API设计、延迟初始化和可选参数等场景的最佳实践,同时警示了解引用风险和指针类型的

文章图片
#c++#java#开发语言
7. C++17新特性-类模板参数推导 (CTAD - Class Template Argument Deduction)

C++17引入的类模板参数推导(CTAD)机制解决了泛型编程中的类型冗余问题。该特性允许编译器根据构造函数参数自动推断类模板类型,消除了C++17之前必须显式指定模板参数或依赖工厂函数的限制。CTAD通过隐式推导指南和自定义推导指南实现,特别适用于RAII资源管理和泛型Lambda场景。但需注意其"全有或全无"原则、字符串字面量陷阱等边界情况。这一改进使C++泛型编程更加简洁高

文章图片
#c++#开发语言
5. C++14新特性-变量模板 (Variable Templates)

C++14变量模板是泛型编程的重要改进,它弥补了C++11只能通过类模板或函数模板定义泛型常量的局限。文章对比了C++11中定义泛型常量的两种繁琐方式(类模板静态成员和constexpr函数)与C++14变量模板的简洁语法,指出后者更符合"泛型变量"的直观语义。更重要的是,变量模板极大地简化了类型特征(TypeTraits)的使用,消除了C++11中无处不在的::value视觉

文章图片
#c++#开发语言
arm架构ubuntu设置ibus中文输入法快捷键

死活没反应,搞了挺久就是不成功,不知为何,设置成其他的组合键是可以的,但其他的用不顺手。于是到处寻找其他的设置方法,终于找到了。最近在 jetson agx orin 上刷机,装上 ubuntu 后准备设置中文输入法,按照网上的操作安装。这里我是想把输入法快捷键设置成。按上图所示设置,点击“应用”, 点击“确定”单个 “shift” 键。单个 “shift”

文章图片
#ubuntu#linux
20.C++11之POD类型

在 C++ 里,POD 是 “Plain Old Data” 的缩写,意思是普通旧数据。在 C++11 之前,POD 类型就已存在,不过 C++11 对其定义和规则进行了更为细致的划分和明确。POD 类型旨在和 C 语言中的数据类型保持兼容,保证数据在内存中的布局和 C 语言里的一致,这有利于在 C++ 和 C 代码之间进行数据交互,同时也能确保对象在内存中的存储形式简单且可预测。

文章图片
#c++#开发语言
到底了