我在我的代码库上运行 iwyu,并且有一些文件坚持我添加
#include <cxxabi.h> // for __forced_unwind
我能够消融代码并发现它似乎与cv.wait(mu)
.
具体来说,无谓词版本。
如果我删除cv.wait(mu)
,iwyu 不再建议cxxabi.h
。
这是什么__forced_unwind
功能,为什么 iwyu 推荐它,可以安全地忽略它吗?
最小测试用例:
// foo.cpp
#include <condition_variable>
#include <mutex>
void foo(std::condition_variable_any* cv, std::mutex* mu) {
cv->wait(*mu);
}
src/foo.cpp should add these lines:
#include <cxxabi.h> // for __forced_unwind
src/foo.cpp should remove these lines:
The full include-list for src/foo.cpp:
#include <cxxabi.h> // for __forced_unwind
#include <condition_variable> // for condition_variable_any
#include <mutex> // for mutex
---