cpp
C++ 伪闭包
伪闭包 闭包允许函数捕获并携带其作用域中的变量,在闭包定义的作用域已经结束,这些变量仍然可以通过闭包访问,闭包也可以推迟操作,减少代码冗余。
与智能指针配合延长对象的生命周期。
Copy
class A {};
int foo() {
std::shared_ptr<A>…
关于指针常量与常量指针
指针常量 Copy
int *const ptr = nullptr;
const 修饰的是指针 ptr 的值,ptr 本身不能被修改,所以指针常量必须初始化,同时我们无法对 ptr 的值进行修改。
Copy
int a = 10;
int *const ptr = &a;
ptr…
预定义宏
预定义宏是由编译器提供的宏定义。 编译器相关的宏
不同的编译器提供自己的一套预定义宏。
GCC
__GNUC__:GCC 的主版本号。
__GNUC_MINOR__:GCC 的次版本号。
__GNUC_PATCHLEVEL__:GCC 的补丁级别号。
Clang
__c…
CMake 记录
对于一个项目结构: Copy
.
├── CMakeLists.txt
├── func
│ ├── CMakeLists.txt
│ ├── include
│ │ └── func.h
│ ├── lib
│ │ └── libfunc_lib.a…
命名空间那些坑
命名空间 & 源文件 观察以下代码:
Copy
// current_thread.h
#ifndef _CURRENT_THREAD_H_
#define _CURRENT_THREAD_H_
namespace mymuduolib {
namespace…
虚函数机制
静态绑定 C++ 中函数的默认绑定是静态绑定,也称为早绑定和编译期绑定。
静态绑定将函数的查找、关联的过程放在编译期间完成,可以提升程序的运行时的性能。
动态绑定
Copy
#include <iostream>
class Base {
public:
void foo…