分类: Programming

11 篇文章

简单地说一下空基类优化(EBO)
前言 本文的目的在于用尽可能少的字数及版面下,直观地展示空基类优化(EBO/EBCO)的作用。 为什么要使用空基类优化 C++标准规定对象的大小不能为0。标准要求每个对象在内存中必须占有一定的空间,这意味着即使这个类没有任何成员,sizeof(A)也不会为0,那么: class A { /* some functions here */ }; cl…
关于最近见到的一部分CPP问题的思考与解答
前言 在逛知乎时,偶然遇到了这样一个回答: 这里有两组面试题,都是最基础的题目,但是轻松通过的话已经超过我面试过的所有人。 Welcome to the C/C++ Quiz!C/C++ Quiz 2 本文就该页面提到的题目进行思考与解答(注:默认少打的分号、拼错的变量、函数、类等名字不算错误并已更正) C++ Quiz 2 Part B. Que…
vector中emplace_back与push_back的不同
2025/7/11 添加了一个参考文章,并将【参考】部分重命名为参考—延伸部分 前言 std::vector中有两个函数都能向容器尾部添加元素,分别是push_back和emplace_back 在发展历史上,emplace_back较push_back后推出,以解决push_back中存在的一些效率问题。 我们现在引出三个问题: emplace_…
std库中的一个SFINAE实例
GCC std库实现中的一个SFINAE实例 Part 1. 源代码 在std::tuple的swap函数上有这样一个noexcept声明: noexcept(__and_<__is_nothrow_swappable<_Elements>...>::value) 作用是检测tuple内的每一个元素是否是不抛出可交换的,这里…
thumbnail
C++ Memory Order
前言 原子变量是C++解决多线程中数据竞争、线程同步的一种方式,而内存序(Memory Order)则是使用原子变量前的一个重要知识。 在Luyu Huang's Blog的文章中,已经对C++的内存序做出了比较清晰易懂的解释,本文的目的旨在提炼其文章中的核心思想,补充其文章中所提到的不足和发表一点作者自己的看法与感想。 原子变量 在使用原子变量时…
分享一下好的技术文章(持续更新)
计算机体系结构 计算机体系结构,知乎 GIS GIS,知乎专栏 基于geopandas的空间数据分析——数据结构篇,博客园 C++ C++应用 C++伪共享问题和缓存乒乓效应,知乎 字符串 C++20的constexpr string为什么无法工作,知乎.YKIKO#GCC对SSO的自引用实现 C++语言 函数 洞悉C++函数重载决议,知乎 CPO…
中译中:将Cppreference上的部分词条再译为中文
CPP/语言/重载决议 在这一页面,有着以下的词条: 构造函数候选的额外规则: 在构造类型 D 的对象时,如果满足以下所有条件,那么从类类型 C 继承的首个形参类型是“到 P 的引用”的构造函数(包括从模板实例化的此类构造函数)会从候选函数集合排除: 实参列表只有一个实参 C 引用关联于 P P 引用关联与 D 该词条比较难以理解,牵扯的概念较多,…
thumbnail
C++23’s New Feature: Deducing this
C++23's New Feature: Deducing this 0. 引言 C++23带来了新的语法支持:Deducing this,作为C++23中的重要特性,使C++程序的编写更加简洁和灵活,但也带入了一定的理解成本。本篇文章旨在介绍该特性的语法、基本使用与一些使用场景。 本文中所有示例代码的编译及运行环境:Windows, clang+…
thumbnail
C++20: Coroutine学习笔记
C++20: Coroutine Part 0. 引言 C++20引入了新的语言特性:协程(Coroutine),为C++的异步程序编写提供了新的范式,C++20采用无栈携程的设计,提高了协程程序的灵活度,但也加大了对协程程序的理解难度,本篇文章旨在带领读者了解协程的基本使用、相关概念、<coroutine>头文件的介绍。 本文中所有程…
隐藏
变装