Size: a a a

2020 April 09

EP

Egor Pugin in pro.cxx
поэтому надо или копию или взять what() и обернуть в новое
источник

PK

Pavel Kazakov in pro.cxx
срезку точно не надо допускать, но тут видимо general-purpose library, и непонятно кто родитель или потомок
источник

EP

Egor Pugin in pro.cxx
копия тоже вряд ли всё-таки поможет, т.к. деструктор выгружается
источник

PK

Pavel Kazakov in pro.cxx
Egor Pugin
поэтому надо или копию или взять what() и обернуть в новое
ну вот это нормальная тема, потому что больше нечего брать
источник

EP

Egor Pugin in pro.cxx
но если деструктор в основной программе, то копия сработает
источник

EP

Egor Pugin in pro.cxx
Pavel Kazakov
ну вот это нормальная тема, потому что больше нечего брать
what() у ... не получится
источник

PK

Pavel Kazakov in pro.cxx
а если бояться, что места на аллокацию нового текстика не хватит... ну тут проект в глубокой заднице, или в каких-то страшных рамках
источник

PK

Pavel Kazakov in pro.cxx
Egor Pugin
what() у ... не получится
я глупый и устал)) сорян, пойду отдыхать
источник

VK

Valentin Kornienko in pro.cxx
Egor Pugin
из длл вылетает исключение, обрабатывается выше, а нужно сделать анлоад сейчас
Это как-то стремно, если исключение покинуло .dll
источник

EP

Egor Pugin in pro.cxx
да нет, почему
источник

АК

Александр Караев in pro.cxx
Egor Pugin
из длл вылетает исключение, обрабатывается выше, а нужно сделать анлоад сейчас
я бы предложил хранить handle dll в shared_ptr, внутри исключения соответственно держать ссылку на длл (пока живо исключение, нельзя анлоадить dll)
источник

EP

Egor Pugin in pro.cxx
исключение ведь ничего не знает о длл, оно где-то внутри рождается
источник

АК

Александр Караев in pro.cxx
значит перехватывать и оборачивать в другое исключение
источник

EP

Egor Pugin in pro.cxx
ага, на этом остановился
источник

АК

Александр Караев in pro.cxx
вообще, про копирование исключений ничего нет в стандартной либе и это наверное логично - исключение же может быть move-only?
всякие make_exception_ptr/current_exception/rethrow_exception именно про указатели (shared-like)
источник

v

vehlwn in pro.cxx
Александр Караев
вообще, про копирование исключений ничего нет в стандартной либе и это наверное логично - исключение же может быть move-only?
всякие make_exception_ptr/current_exception/rethrow_exception именно про указатели (shared-like)
Не может. Оно копируется в неспецифицированную локацию. http://eel.is/c++draft/except.throw#3.sentence-1
Throwing an exception copy-initializes ([dcl.init], [class.copy.ctor]) a temporary object, called the exception object.
The memory for the exception object is allocated in an unspecified way...
источник

v

vehlwn in pro.cxx
Как его тогда между функциями кидать?
источник

АК

Александр Караев in pro.cxx
vehlwn
Как его тогда между функциями кидать?
ты про инициализацию говоришь (не ясно, что мешает использовать move конструктор), а между функциями оно кидается через shared_ptr-like структуру
источник

v

vehlwn in pro.cxx
Александр Караев
ты про инициализацию говоришь (не ясно, что мешает использовать move конструктор), а между функциями оно кидается через shared_ptr-like структуру
Значит это баг языка.
источник

K

Kasper in pro.cxx
Здравствуйте, я могу сюда задать вопрос ?
источник