Skip to content

败犬日报 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 等命令可以替代。