@ProCxx

Страница 2164 из 2477
Ilia
27.06.2018
17:53:20
а чо не так?
Это -- ВСЕ ОПРЕДЕЛЕНИЕ ЭТИХ ТРЁХ КЛАССОВ!

Constantine
27.06.2018
17:53:26
Почему ты так решил?
Потому что у меня таких проблем не было

olologin
27.06.2018
17:53:29
Я особо не пытался, потому как начались конфликты бустов

Google
olologin
27.06.2018
17:53:45
вот сейчас минидамп прикручиваю, учитывая что у нас проект в основном под винду

Побитый
27.06.2018
17:54:08
Потому что у меня таких проблем не было
И как ты закрывал всякие HANDL-ы?

Vhäldemar
27.06.2018
17:54:10
та бери она ж хедер онли

Vhäldemar
27.06.2018
17:54:22
просто положи рядом новый

Constantine
27.06.2018
17:54:34
И как ты закрывал всякие HANDL-ы?
А зачем при перемещении вызывать деструктор?

Побитый
27.06.2018
17:55:06
А зачем при перемещении вызывать деструктор?
Не деструктор, а Close для ресурса

Mikhail Voronov
27.06.2018
17:55:20
А зачем при перемещении вызывать деструктор?
У него оператор, а не конструктор

Constantine
27.06.2018
17:55:27
Не деструктор, а Close для ресурса
Close для RAII это деструктор

Побитый
27.06.2018
17:55:48
Close для RAII это деструктор
Close это WinAPI функция)

Constantine
27.06.2018
17:56:00
Close это WinAPI функция)
Не отменяет утверждения

Побитый
27.06.2018
17:56:08
В деструкторе она просто вызывается

Google
Побитый
27.06.2018
17:56:16
Сам деструктор не вызывается

в операторе =

Constantine
27.06.2018
17:56:24
Close вызывается только в деструкторе

Перемещение не требует деструктора

В чем проблема?

Побитый
27.06.2018
17:57:47
Close вызывается только в деструкторе
Почему тогда в unique_ptr в operator = вызывается reset, который вызывает deleter на указатель, который сейчас во владении?

Я делал тупо такую же семантику

Побитый
27.06.2018
17:58:21
При перемещении с помощью operator = ты же должен куда то деть ресурс текущий

Constantine
27.06.2018
17:58:27
Побитый
27.06.2018
17:58:28
Потому что они так хотят
Куда ты его деваешь?

Constantine
27.06.2018
17:58:36
Побитый
27.06.2018
18:00:01
В other
Ну а я закрываю)

Constantine
27.06.2018
18:00:49
Ну а я закрываю)
А у меня noexcept и отсутствие далеких вызовов с синхронизацией

Т.е. работающий как надо оптимизатор при forward-е

Побитый
27.06.2018
18:01:31
В other
При такой реализации ресурс же может остаться незакрытым

Побитый
27.06.2018
18:02:47
Каким образом?
Если мы например поле долгоживущего объекта мувнем, то у нас ресурс в этом поле так и будет жить

Constantine
27.06.2018
18:03:28
Google
Constantine
27.06.2018
18:04:08
Конструкторы перемещения ничего не должны про состояние объекта

У меня же тоже noexcept)
И UB при SEH-исключении?

Побитый
27.06.2018
18:04:45
Antony
27.06.2018
18:05:00
У меня щас Boost 1.55 или около того. Stacktrace в более позднем бусте. Я хочу Stacktrace, но не хочу апгрейдить Буст. Есть ли из этого какой-то выход? :)
Если разработка не под Windows, то без особых проблем можно просто положить весь модуль стектрейса в папку libs внутри boost, запустить ./b2 headers и поправить пару инклюдов Если под windows - придется еще притащить Boost.WinAPI

Constantine
27.06.2018
18:05:06
Откуда там SEH?
Откуда и везде, категорически невалидное значение HANDLE

Mikhail Voronov
27.06.2018
18:05:40
Конструкторы перемещения ничего не должны про состояние объекта
разве не только состояние принимаемого объекта?

Constantine
27.06.2018
18:06:14
разве не только состояние принимаемого объекта?
Я имею в виду other, конечно. В this обычно должны)

Mikhail Voronov
27.06.2018
18:06:30
ну вот ему и нужно ресурсы в this закрыть)

а с other дальше непонятно что будет

Constantine
27.06.2018
18:06:59
ну вот ему и нужно ресурсы в this закрыть)
Перемещение может как swap работать, а значит, всегда может быть noexcept

Constantine
27.06.2018
18:12:41
Откуда там SEH?
Вот блин, забыл пример, но там был забавный случай как сделать SEH исключение через окно-потомка в другом процессе на win10

Igor
27.06.2018
18:25:19
Как там называется эффект, когда ни разу в жизни про SEH не слышал, а потом один раз наткнулся - и теперь все вокруг только о нем и говорят...

Vhäldemar
27.06.2018
18:26:06
боль виндузятника

Vhäldemar
27.06.2018
18:28:17
феномен Баадера-Майнхофа

Igor
27.06.2018
18:28:32
Точн

Google
olologin
27.06.2018
19:04:42
А в линуксе аналоги seh эксепшенов есть?

Или там только сигналы?

Ilia
27.06.2018
19:49:34
Блин, в 2017 вижаке clang-format или ещё кто-то , кто автоформатирует код, переставляет местами заголовки ... #include "stdafx.h" #include "resource.h" stdafx.h едет с первого места вниз, и наступает АХТУНГ!

Mikhail Voronov
27.06.2018
19:51:15
Вот блин, забыл пример, но там был забавный случай как сделать SEH исключение через окно-потомка в другом процессе на win10
Ну вообще noexcept оператора перемещения гарантируется noexcept деструктора, т.к. в этом случае можно сначала свапнуть с локальным обтьектом

Побитый
27.06.2018
20:08:41
Хм... да, но noexcept dtor более тяжелая гарантия
Кстати да, как закрывать хендл в деструкторе если там "потенциальный seh"?

Denis
27.06.2018
20:09:53
Блин, в 2017 вижаке clang-format или ещё кто-то , кто автоформатирует код, переставляет местами заголовки ... #include "stdafx.h" #include "resource.h" stdafx.h едет с первого места вниз, и наступает АХТУНГ!
если кленг-формат, то это легко настраивается, просто делаешь группу с высшим приоритетом для stdafx и он всегда будет сверху

Admin
ERROR: S client not available

Ilia
27.06.2018
20:11:47
Да накер надо, отрубил форматирование и ок.

Alexey
27.06.2018
20:27:55
а что в студии случается если он не первый?

Антон
27.06.2018
20:28:55
слушайте

Constantine
27.06.2018
20:29:02
а что в студии случается если он не первый?
Все до него игнорируется полностью, там можно прогу на делфи написать

Alexey
27.06.2018
20:29:13
O_O

Антон
27.06.2018
20:29:15
а если я пишу на C вместо C++ и юзаю дефайны вместо шаблонов, я мазохист?

Google
Anatoly
27.06.2018
20:38:57
Блин, в 2017 вижаке clang-format или ещё кто-то , кто автоформатирует код, переставляет местами заголовки ... #include "stdafx.h" #include "resource.h" stdafx.h едет с первого места вниз, и наступает АХТУНГ!
может в супапро? тебе там подскажут разделять предкомпилируемый заголовок пустой строкой от всех остальных заголовков. Илья, что за херню ты постишь в прочат?

Mikhail Voronov
27.06.2018
21:16:46
Кстати да, как закрывать хендл в деструкторе если там "потенциальный seh"?
Ну в голову приходит только вариант, который скидывал выше, - https://blogs.msdn.microsoft.com/oldnewthing/20170728-00/?p=96706 (первый пример с установкой фильтра и try/catch). Но тут опять есть минусы в том, что этот фильтр глобальный, хотя может в Вашем случае это и не будет минусом.

Igor
27.06.2018
21:18:53
Кстати да, как закрывать хендл в деструкторе если там "потенциальный seh"?
Если вылетело seh исключение то программе скорее всего уже ничего не поможет, можно не заморачиваться.

Anatoly
27.06.2018
21:22:14
ну кланг формат любит ломать иногда всякое
озвученная Ильей "проблема" обходится элементарно, а он сокрушается

Stanislav
27.06.2018
21:22:54
озвученная Ильей "проблема" обходится элементарно, а он сокрушается
да отделять инклуды новой строчкой чтоб кланг формат это не ломал, вот это бред

Daniil
27.06.2018
21:23:24
такое, мне не очень помогает

Anatoly
27.06.2018
21:23:37
да отделять инклуды новой строчкой чтоб кланг формат это не ломал, вот это бред
а мне привычно, поскольку у меня группы заголовков - мои, библиотек, стандарные

Kirill
27.06.2018
21:24:43
да отделять инклуды новой строчкой чтоб кланг формат это не ломал, вот это бред
в кланг формате можно правило указать, в чем собственно проблема

To configure this in the .clang-format file, use: IncludeCategories: - Regex: '^"(llvm|llvm-c|clang|clang-c)/' Priority: 2 - Regex: '^(<|"(gtest|gmock|isl|json)/)' Priority: 3 - Regex: '.*' Priority: 1

вжух

Daniil
27.06.2018
21:25:23
а все в одну кучу лепить - это действительно бред
Анатолий, будьте добры, ответьте на вопрос в supapro :)

Dmitry
27.06.2018
21:56:15
Можно использовать неинтрузивные pch, ещё и портабельно повторить для gch.

Ilia
27.06.2018
22:47:33
а все в одну кучу лепить - это действительно бред
Там был до форматирования НЕ МОЙ КОД. И пустых срок не было. Проблема в том, что я естественно не заметил перестановки до компиляции. И после тоже не заметил. Только Git помог.

Igor
27.06.2018
22:54:37
а что это и как это готовить?
https://docs.microsoft.com/en-gb/cpp/build/reference/fi-name-forced-include-file

Страница 2164 из 2477