Size: a a a

2021 January 27

0

000Sanya in dlang.ru
втф
источник

g

gui in dlang.ru
создаётся S(1), копируется в a, на : уничтожается и в конце функции уничтожается a
источник

g

gui in dlang.ru
всё логично /s
источник

Е

Евгений in dlang.ru
gui
создаётся S(1), копируется в a, на : уничтожается и в конце функции уничтожается a
Она не копируется, а перемещается.
источник

Е

Евгений in dlang.ru
Добавил в структуру this(this) {} и вторая деструкция магически исчезла.
источник

g

gui in dlang.ru
тут уже будут догадки, this(this){} - конструктор копирования, компилятор видит, что конструктор ничего не делает, выключает его и при S a = S(1) не создаёт ещё одну структуру
источник

g

gui in dlang.ru
да, походу копирования
источник

g

gui in dlang.ru
а не
источник

Е

Евгений in dlang.ru
gui
тут уже будут догадки, this(this){} - конструктор копирования, компилятор видит, что конструктор ничего не делает, выключает его и при S a = S(1) не создаёт ещё одну структуру
Во-первых, это не конструктор копирования, а постблит. Во-вторых, до этого компилятор не видел, что постблит ничего не делает? :))
источник

Е

Евгений in dlang.ru
Если добавить конструктор копирования this(ref const S), неважно пустой или нет, вторая деструкция тоже магически исчезает.
источник

Е

Евгений in dlang.ru
Причем этот конструктор не вызывается. :)
источник

DH

Dark Hole in dlang.ru
Евгений
Вот жеж веселуха в этом компиляторе
Почему "в этом"?
источник

DH

Dark Hole in dlang.ru
В лдц тоже самое
источник

Е

Евгений in dlang.ru
И в этом тоже. Тут беда во фронтенде, очевидно.
источник

DB

Dmitry Bubnenkov in dlang.ru
Я правильно понимаю, что если я процесс в режиме detached то он не привязывается к родителю?
источник

SG

Serg Gini in dlang.ru
Евгений
И в этом тоже. Тут беда во фронтенде, очевидно.
А может не баг, а фича?) или точно баг?
источник

SG

Serg Gini in dlang.ru
Я просто хз как он раскрывает внутри этот оператор ?:
источник

Е

Евгений in dlang.ru
Serg Gini
Я просто хз как он раскрывает внутри этот оператор ?:
Какая разница как он раскрывает? У одного и того же объекта не должен два раза вызываться деструктор. Никогда.
источник

SG

Serg Gini in dlang.ru
Так не факт что объект один и тот же
источник

SG

Serg Gini in dlang.ru
Возможно где-то создаётся неявно ещё один
источник