败犬日报 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 合理吗
不合理。但是项目可能写着写着就套圈了,突出一个高耦合。