У меня есть код C++, который пользуется некоторыми библиотеками C. Библиотеки C берут обратные вызовы языка C. Я записал обратный вызов в своем коде C++, и теперь я так или иначе должен сообщить об ошибке от него (но он возвращается пусто). Интересно, могу ли я выдать исключение от обратного вызова C, который используется из кода C++?
Это очень трудно для меня понять.
Спасибо, Boda Cydo.
Да, у вас должна быть возможность сделать так. Однако имейте в виду, что вполне вероятно, что библиотека C не была написана для обеспечения безопасности исключений, и в результате вы можете оставить некоторые из структур этой библиотеки в каком-то несовместимом состоянии. Это полностью зависит от конкретной библиотеки и конкретной функции обратного вызова. По крайней мере, эта библиотека, вероятно, должна быть написана с учетом поддержки C ++ с самого начала в отношении этого обратного вызова.
Да, вы можете вызвать исключение из вашей функции C ++. Однако его может перехватить только код C ++, поэтому он не будет обрабатываться в устаревшей библиотеке.