T230723 copy-and-swap Idiom and More Tricks
今天讲一个 Idiom 加一些 Tricks。 本次内容紧紧围绕着 The Rule of the Big Five,即 destructor copy constructor copy assign… Continue Reading T230723 copy-and-swap Idiom and More Tricks
Dive deep into the C++ core, and discover more!
今天讲一个 Idiom 加一些 Tricks。 本次内容紧紧围绕着 The Rule of the Big Five,即 destructor copy constructor copy assign… Continue Reading T230723 copy-and-swap Idiom and More Tricks
本次谈逻辑分派。 三种最基本的逻辑关系为相似、承接和因果关系。 逻辑分派主要指的是因果关系,因果关系里面又包含条件关系。因果关系是一种非常特殊且重要的关系,表示两个功能块之间具备极强的依赖性。功能 B… Continue Reading T230713 Dispatch table
今天谈谈 inline constexpr。 上次讲过 static constexpr,它用于 function scope/class scope ,此时 constexpr 会隐式 inline… Continue Reading T230707 inline constexpr
提到 C++,许多人的印象绝对不会少了一个词:复杂。 的确,2000 页左右的标准,甚至一些特性单独就能成一本书,怎么能不复杂? 但也别忘了它是一门接近 40 年的编程语言。 系统大了,问题本身就很复… Continue Reading T230705 Complex C++
占位,待录。
这次谈成员初始化。 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