T230621 Member Initialization
这次谈成员初始化。 C++存在 3 种方式初始化成员,分别为: ctor member initializer list ctor body default member initializer (i… Continue Reading T230621 Member Initialization
Dive deep into the C++ core, and discover more!
这次谈成员初始化。 C++存在 3 种方式初始化成员,分别为: ctor member initializer list ctor body default member initializer (i… Continue Reading T230621 Member Initialization
前几天群里聊到了初始化,所以这次选择该主题。 这个主题也是一个基本内容,乃大厦之基,联系太过广泛,所以也是可深可浅。 局部值、全局值、成员值、静态值、内联值、线程值……每一个单独拿出来可能还好理解,但… Continue Reading T230612 Variable initialization
有一段时间没写 TGS 了,继续更新。 今天谈一个基本概念—— Polymorphism,这是大多数初学者最初接触的概念,要说它简单,那你可能想简单了。它是一个可以串起 C++98-26 发展历程的一… Continue Reading T230531 C++ Polymorphism
今天说一下额外 () 产生不同意义的情况。 多数情况下,额外的()是不影响语义的,但在以下 5 种情况,有无 () 则意义不同,此时 () 就有了特殊的作用。 禁止 ADL。 在「洞悉 C++ 函数重… Continue Reading T230428 Extra Parentheses, Different Meaning
今天说两个关于编译期的小技巧。 看如下例子: struct S { int val; constexpr int size() const { return val * (val + 1) / 2; … Continue Reading T230420 Unconditional compile-time expression
explicit(bool) 是 C++20 引入的一个特性,称为 Conditionally explicit。 核心目的是简化泛型类型的实现,提高性能,减少编译时间。 举个简单的例子: void … Continue Reading T230418 explicit(bool)
占位,待录。
占位,待录。
新年伊始,要说什么选题最合适,那无疑是 C++23 了。 去年只写过 Ranges 和几个小特性的提案,对于其他特性,就全放在此篇一览究竟。 23 是个小版本,主要在于「完善」二字,而非「新增」。因此… Continue Reading Overview of C++23 Features
占位,待录
占位,待录。
占位,待录。
import std; auto main() -> int { std::println("Hello world!"); } 随着 Modules 和 Formattin… Continue Reading “Hello World” in C++23
设计程序,经常需要分离不变的和变化的逻辑。将不变的逻辑放到一块,再以某种形式为变化的部分提供「定制点」,从而使程序具有更好的可扩展性,同时增加相似逻辑的可复用性。 因此,本质上来说,设计是为了应对变化… Continue Reading 使用Concepts表示变化「定制点」
占位,待录。