Я слышал, что создание исключений в / из библиотеки C ++ может быть потенциально опасным, особенно с DLL, и особенно если вызывающий код и библиотека скомпилированы с разными компиляторами.Есть ли правда в этом?Это безопасно, пока я придерживаюсь статических библиотек?Заметьте, что я не говорю о внутреннем использовании исключений только в библиотеке, я хочу добавить их глубоко в вызывающий код :)
Просто чтобы уточнить: скажем, у меня есть скомпилированная статическая библиотека, которая определяет классВот так:
class Foo
{
public:
// Constructor
Foo()
{
/* ... Do stuff ... */
if (stuffwentwrong)
throw(123); // We throw an integer error code (to make it simple)
}
};
И какой-то парень использует это так:
try
{
Foo foo_object;
}
catch (int i)
{
std::cout << "Oh bum. Code: " << i;
}
Это было бы безопасно?