мой проект использует 2 разных компилятора C ++, g ++ и nvcc (cuda compiler).
Я заметил исключение, генерируемое из объектных файлов nvcc, которые не попадают в объектные файлы g ++.
Предполагается, что исключения C ++ должны быть двоично-совместимыми на той же машине?
что может вызвать такое поведение?
try { kernel_= new cuda:: Kernel(); }
catch (...) { kernel_= NULL; }
// nvcc object
cuda:: Kernel:: Kernel () {
...
if (! impl_) throw;
}
все остальное работает (объекты C ++, операторы). Честно говоря, я не очень хорошо знаю исключения, так что, возможно, в приведенном выше коде есть ошибка.