Я запускаю 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
---