败犬日报 2025-01-10
1. ffmpeg 用什么方式调用
业界大多用命令行,不用链接。
2. build 时显示内存不够
可以限制并发数。
3. 巨长的 C++ 编译报错
https://www.zhihu.com/question/30806886/answer/163198839
4. 没有右值引用的话
在 C++11 之前没有右值引用,整出了一堆 auto_ptr
之类的抽象玩意。所有涉及移动语义的地方手动区分调用,RAII 瘫痪一半。
2004 年的 boost,当时的 shared_ptr
就是单纯没有移动语义,所有都是复制。
5. 什么情况下要用右值引用
语义明确为“拿走所有权”,比如移动构造和移动赋值。
6. copy-and-swap idiom
https://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom
cpp
T& operator=(T other) {
swap(*this, other);
return *this;
}
如果这个类实现了 swap 函数,那么 operator=
就可以用 copy-and-swap idiom。
优点是异常安全(swap 和析构在实践上不应该抛异常)以及代码短。
7. 面试问 Linux free 命令是什么
查看内存使用情况。
群友锐评,问这个很无聊,而且有 top / htop 等命令可以替代。