Skip to content

败犬日报 2025-07-24

1. 有一个 tuple 坑点,tuple 不传播平凡性

tuple 一般用继承来实现导致的。

2. #embed#include 的区别

#embed 会变成字符串或字节数组,而不是 C/C++ 代码。

3. const 对象不禁止成员指针修改指向内容

cpp
struct Foo {
    int *data;
    void bar() const {
        *data = 1;
    }
};

const Foo 只能让成员变量 int *data 变成 int *const,也就可以修改指向内容。

要解决这个问题,可以用 std::experimental::propagate_const 或去标准里抄一个。

4. 引用不要求比被引用的对象先结束生命周期

悬垂引用只要不访问就没事,这点和指针类似。https://en.cppreference.com/w/cpp/language/reference.html Dangling references 章节。

5. 两个文件互相 include 合理吗

不合理。但是项目可能写着写着就套圈了,突出一个高耦合。