
Юра Незнанов
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";
}
}
Вопрос: Каким будет результат выполнения такой программы и почему?

?
21.05.2018
14:27:43

Alex
21.05.2018
14:28:14
false короче

Oleksandr
21.05.2018
14:28:32

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

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

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

Antony
21.05.2018
14:38:37

Google

Antony
21.05.2018
14:40:42

Aidar
21.05.2018
14:41:41

Alex
21.05.2018
14:42:40

Antony
21.05.2018
14:42:48
ответ выдаст всё равно пустой

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

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

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

Danil
21.05.2018
14:50:48

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 языке с гц деструкторов или аналогов

TriΔng3l
21.05.2018
15:07:22

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
поэтому я и не одобряю гц в крестах и прочие штуки. потому что проблема не решается но вводятся новые сущности. а проблема не решаемая.

PRoSToC0der
21.05.2018
15:10:53

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

TriΔng3l
21.05.2018
15:13:55

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

Admin
ERROR: S client not available

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

PRoSToC0der
21.05.2018
15:25:00

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