Size: a a a

2020 July 17

m

magras in pro.cxx
К сожалению, я с аллокаторами работал как раз в C++98. Statefull аллокаторами интересовался уже по инерции и граблей не собирал.
источник

PY

Phil Yar in pro.cxx
Про работу есть чат?
источник

D

Danya in pro.cxx
Phil Yar
Про работу есть чат?
источник

f

fulcanelly in pro.cxx
почему у weak_ptr нет метода get() ?
источник

AT

Anatoly Tomilov in pro.cxx
fulcanelly
почему у weak_ptr нет метода get() ?
weak_ptr не владеет объектом — вот и нет get()
источник

AS

Anatoly Shirokov in pro.cxx
fulcanelly
почему у weak_ptr нет метода get() ?
weak_ptr может ссылаться на уже удаленный объект, проверить сущестование этого объекта предполагает метод lock
источник

t

tdiff in pro.cxx
Здравствуйте,

Что будет, если слинковать модули с -fno-exceptions и -fexceptions?

Например, есть Main модуль (-fexceptions), который вызывает модуль Lib(-fno-exceptions), который использует Util(-fexceptions).

1. Можно ли так делать вообще?
2. Если функция из Util, вызванная из Lib, бросит исключение, поймает ли его try/catch в Main?
3. Есть ли разница при статической\динамической линковке?

Остальные настройки компилятора одинаковые.
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
tdiff
Здравствуйте,

Что будет, если слинковать модули с -fno-exceptions и -fexceptions?

Например, есть Main модуль (-fexceptions), который вызывает модуль Lib(-fno-exceptions), который использует Util(-fexceptions).

1. Можно ли так делать вообще?
2. Если функция из Util, вызванная из Lib, бросит исключение, поймает ли его try/catch в Main?
3. Есть ли разница при статической\динамической линковке?

Остальные настройки компилятора одинаковые.
Если в lib исключение покинет функцию, будет аборт
источник

ПК

Побитый Кирпич... in pro.cxx
tdiff
Здравствуйте,

Что будет, если слинковать модули с -fno-exceptions и -fexceptions?

Например, есть Main модуль (-fexceptions), который вызывает модуль Lib(-fno-exceptions), который использует Util(-fexceptions).

1. Можно ли так делать вообще?
2. Если функция из Util, вызванная из Lib, бросит исключение, поймает ли его try/catch в Main?
3. Есть ли разница при статической\динамической линковке?

Остальные настройки компилятора одинаковые.
По всей видимости в Lib отсутствуют гарантии на исключение, что обычно считается UB, если исключение возникнет в контексте Lib
источник

t

tdiff in pro.cxx
Artöm Bakri Al-Sarmini
Если в lib исключение покинет функцию, будет аборт
А что ему помешает её покинуть?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
tdiff
А что ему помешает её покинуть?
Отсутствие поддержки исключений
источник

t

tdiff in pro.cxx
Побитый Кирпич
По всей видимости в Lib отсутствуют гарантии на исключение, что обычно считается UB, если исключение возникнет в контексте Lib
Что вы имеете в виду под "гарантиями на исключение"?
источник

ПК

Побитый Кирпич... in pro.cxx
tdiff
Что вы имеете в виду под "гарантиями на исключение"?
Если нет гарантий на исключение, то состояние объектов библиотеки будет неопределено после выброса.
источник

t

tdiff in pro.cxx
Artöm Bakri Al-Sarmini
Отсутствие поддержки исключений
Не понимаю: Lib (-fno-exeptions) вызывает  Util(-fexceptions). Из Utils вылетает исключение, но т.к. в Lib нет их поддержки, исключение
а) пропадёт
б) вызовет abort
?
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
В худшем случае ты поймаешь исключегие вне либы, но не будут вызваны дторы локалок. Хотя я не уверен, что это возможно в принципе
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
tdiff
Не понимаю: Lib (-fno-exeptions) вызывает  Util(-fexceptions). Из Utils вылетает исключение, но т.к. в Lib нет их поддержки, исключение
а) пропадёт
б) вызовет abort
?
Вероятнее всего б
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Нужно читать доки к компиляторам, ибо -fno-exceptions никак стандартом не регламентируется
источник

t

tdiff in pro.cxx
Побитый Кирпич
Если нет гарантий на исключение, то состояние объектов библиотеки будет неопределено после выброса.
В смысле, что не вызовутся деструкторы? Да, это логично
источник

ПК

Побитый Кирпич... in pro.cxx
Artöm Bakri Al-Sarmini
Вероятнее всего б
А если Main вызывает Lib? Исключение поймается в Main в catch
источник

ПК

Побитый Кирпич... in pro.cxx
tdiff
В смысле, что не вызовутся деструкторы? Да, это логично
Не только, любые инварианты нарушаются
источник