@ProCxx

Страница 2073 из 2477
Юра Незнанов
21.05.2018
14:23:36
всем привет. есть вопрос: почему вижл студия иногда не обновляет дебаг информацию (.pdb)? я написал драйвер, в первых раз windbg правильно подгрузил символьную инфу.

потом я поменял немного код, пересобрал. и тут уже виндбг не смог ее подгрузить

фактически выдает старые данные (например номер строчки кода для функции какой-нибудь)

Egor
21.05.2018
14:24:59
он бывает косячит, можно запустить пересборку решения

Google
Egor
21.05.2018
14:25:15
если в файле есть юникод, тоже иногда неверно сопоставляет исходник ипдб

Oleksandr
21.05.2018
14:25:24
char f() { std::cout « "Hello\n"; return 0; } void main() { if (!(!(0 || 1) && !(1 && 0)) && (16 & 4) && (2 & 10) && f() && ~false) { std::cout « "World!\n"; } }

Вопрос: Каким будет результат выполнения такой программы и почему?

Oleksandr
21.05.2018
14:28:32
false короче
Я вначале неверно написал

Alex
21.05.2018
14:28:59
Ааа, секунду

olologin
21.05.2018
14:29:00
за такие задания надо руки отрывать

?
21.05.2018
14:30:06
бред кокоито

Google
Antony
21.05.2018
14:40:42
Вопрос: Каким будет результат выполнения такой программы и почему?
вот это !(0 || 1) будет false и дальше компилятор ничего считать не будет будет пустой вывод Лабораторные/экзамен делаете?

Aidar
21.05.2018
14:41:41
а нельзя там через || мерджить в цпп17?
Через оператор запятая и вроде фигурные скобки тоже

Alex
21.05.2018
14:43:16
Во, суп

Aidar
21.05.2018
14:45:43
Я бы сказал что компилейшн еггор

Oleksandr
21.05.2018
14:48:05
Приведите пример преобразования типов через указатели

Oleksandr
21.05.2018
14:52:44
Aidar
21.05.2018
14:53:22
PRoSToC0der
21.05.2018
15:01:51
есть ли пример ситуации когда умные указатели не спасают, но спасает GC?

Max
21.05.2018
15:03:22
циклические ссылки

но все равно остаются непонятки с вызовом деструкторов если такие есть в языке

Denis
21.05.2018
15:04:33
если нет деструкторов, всегда есть непонятки с освобождением ресурсов :)

Max
21.05.2018
15:05:01
когда А и Б ссылаются друг на друга, чей деструктор выпонять первым? а если в деструкторе идет работа с указателем на другой класс который уже собран GC?

гц снес обьект Б а в А в деструкторе к нему лезет управление

или наоборот

что делать?

вывод: циклические ссылки зло

Google
Aidar
21.05.2018
15:05:51
что делать?
Не делать так

Max
21.05.2018
15:05:55
даже с GC

ну так попробуй молодому энергичному говнокодеру запрети

Aidar
21.05.2018
15:06:27
Просто gc и raii несовместимы

Да и ваще gc и деструкторы

Max
21.05.2018
15:06:43
а это еще простой пример. а могут быть циклические ссылки гораздо сложнее и не очевиднее

Aidar
21.05.2018
15:07:12
Я не видел ни в 1 языке с гц деструкторов или аналогов

Aidar
21.05.2018
15:07:25
Нет там

Это не аналог

TriΔng3l
21.05.2018
15:07:33
Нет там
Там финализаторы

TriΔng3l
21.05.2018
15:07:39
Которые хрен знает, когда вызываются

Aidar
21.05.2018
15:07:40
Оно не вызывается ваще

Иногда

Max
21.05.2018
15:07:59
как в джаве

TriΔng3l
21.05.2018
15:08:28
Ну там можно всякие неуправляемые ресурсы освобождать, если вдруг ты мудак и явно их не освободил

Aidar
21.05.2018
15:09:10
Ваще не могу без raii уже

TriΔng3l
21.05.2018
15:09:18
Ваще не могу с RAII

Aidar
21.05.2018
15:09:31
Для меня все остальное как камнем гвозди забивать

Google
Max
21.05.2018
15:09:46
поэтому я и не одобряю гц в крестах и прочие штуки. потому что проблема не решается но вводятся новые сущности. а проблема не решаемая.

Max
21.05.2018
15:13:49
ну так обьект А ссылается на обьект с очередью. в очередь кидаем функтор который захватывает А и держит сильную ссылку на него. либо вместо очереди список коллбеков куда спустя время попадает лямбда с захваченным А. ну или все тоже самое что выше но не А и Б а А-> Б -> В -> А

Max
21.05.2018
15:15:50
данные то данными, а что делать с обьектом файла или сокета? они тоже данные а деструктор нужен чтобы разрывать соединение или закрывать дескриптор

ну или мьютекс

Admin
ERROR: S client not available

Max
21.05.2018
15:16:03
или еще стопицот примеров

Max
21.05.2018
15:26:02
ну так ты пишешь код библиотеки например или базового модуля. даешь функцию которая устанавливает коллбек. а потом ктото спустя время передает в коллбек такую лямбду

и все приехали

а по уму конечно слабый указатель нужен

но многие не понимают зачем он а в учебниках примеры какието дикие

складывается впечатление у новичков что это НЁХ которая нужна менее чем никогда

PRoSToC0der
21.05.2018
15:28:04
а по уму конечно слабый указатель нужен
я по сути ищу пример ситуации когда и слабые указатели не помогут

Max
21.05.2018
15:28:27
такой ситуации я не встречал и выдумать не могу

только если чтото насильно мудрить

обычно если граф обьектов - дерево, то все норм разруливается сильными и слабыми указателями. никаких проблем.

Alex
21.05.2018
15:34:56
В линуксе есть ограничение на размер командной строки, т.е. я могу туда мильард символов ввести?)

Ⱪonstantin
21.05.2018
15:36:23
Есть

Google
Ⱪonstantin
21.05.2018
15:37:05
Какой shell? Bash? Zsh? Sh? Csh? Dash? В документации Шелла написаны ограничения и какими конфигами управляется длина. И ещё есть стандарт posix, которой регламентирует минимально возможную - вот в ней можно быть уже точно уверенным. А вообще это оффтопик и не С++

Alexander
21.05.2018
15:37:48
ZCash

Egor
21.05.2018
18:20:25
cygwin/mingw на винде _WIN32 и _WIN64 по умолчанию включают? может кто помнит навскидку?

Constantine
21.05.2018
18:58:39
такой ситуации я не встречал и выдумать не могу
это же легко, по сути от вас просят ручками построить остовное дерево владения

сделайте, чтобы владение передавалось

Max
21.05.2018
18:59:42
можно поподробнее?

Constantine
21.05.2018
19:00:03
ну концептуально система weak/shared_ptr отличается от сборщика мусора только одним

представьте, что у вас есть некоторый ориентированный граф, описывающий взаимосвязь между объектами

тогда в этом графе вы должны выбрать поднабор рёбер, которые будут shared_ptr, и выбранный набор рёбер должен будет являться деревом

вы меня понимаете?)

Max
21.05.2018
19:03:15
пока да

Constantine
21.05.2018
19:04:04
собственно, нам нужно сделать такой выбор сложным. например, представьте, что вы хотите реализовать класс "состояние конечного автомата", в котором можно модифицировать ребра

т.е. формально если у вас есть ребро A -> B, то пока живо состояние А, должно быть живо и состояние В

и у вас есть операция "создать ребро А -> B" и "удалить ребро A -> B"

вы не сможете сделать это на shared/weak ptr

но полные gc вроде явы с этим справятся

Alex
21.05.2018
19:07:55

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