Почему эта программа
#include <clang-c/Index.h>
#include <exception>
#include <iostream>
int main() {
try {
throw std::exception("threw");
} catch (const std::exception& e) {
std::cout << e.what() << "\n";
}
CXIndex idx = clang_createIndex(0, 0);
clang_disposeIndex(idx);
return 0;
}
вести себя как положено, но этот
#include <clang-c/Index.h>
#include <exception>
#include <iostream>
int main() {
CXIndex idx = clang_createIndex(0, 0);
clang_disposeIndex(idx);
try {
throw std::exception("threw");
} catch (const std::exception& e) {
std::cout << e.what() << "\n";
}
return 0;
}
аварии?
В более общем смысле, что может делать функция, которая не позволяет перехватить последующие исключения?
Использование: visual c ++ 10.0 (пробовал разные флаги / EH), clang 3.4 (собран с тем же)
Задача ещё не решена.
Других решений пока нет …