Skip to content
败犬日报 2025-07-24

败犬日报 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 合理吗 ​

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