Size: a a a

2021 May 24

f

for(int c; (c = getc... in ru.nim.talks
Ну например есть нужно поменять какое-то состояние в начеле функции и затем вернуться из него в конце. https://github.com/krux02/opengl-sandbox/blob/master/fancygl/scoped.nim#L14 без defer это была бы лесенка из

glScopedSet:
 glScopedDepthFunc:
   # уже идет моя логика
источник

f

for(int c; (c = getc... in ru.nim.talks
А так это просто вызовы в начале функции
источник

f

for(int c; (c = getc... in ru.nim.talks
Не очень очевидно что происходит, да, но через RAII для этого нужно было бы конструировать какой-то объект который бы эмулировал откат состояние через "освобождение ресурсов" деструкторе. Ну как мне кажется, хотя может быть я сам не так понял что имелось ввиду под RAII конкретно здесь
источник

g

gavr in ru.nim.talks
а, не, я не про изменение состояний
источник

f

for(int c; (c = getc... in ru.nim.talks
Ну если про именно RAII и ресурсы при исключениях и вообще то тогда деструкторы конечно
источник

g

gavr in ru.nim.talks
токо про очистку ресурсов, которые без arc нужно руками закрывать, вроде дескриптороф файлов, потоков сокетов
источник

g

gavr in ru.nim.talks
изза недетерминированности
источник

f

for(int c; (c = getc... in ru.nim.talks
defer тут вообще не пригоден так как с ним нужно было бы писать

defer:
 myResource.close()
все равно
источник

g

gavr in ru.nim.talks
почему, для закрытия таких штук вполне пригоден, в zig токо так и закрывают
источник

f

for(int c; (c = getc... in ru.nim.talks
но зачем так делать если есть деструкторы?
источник

g

gavr in ru.nim.talks
всмысли, ониж недетерминированно сработают без arc
источник

A

Alexander in ru.nim.talks
Просто это долго писать. А без RAII приходится закрывать файлв
источник

g

gavr in ru.nim.talks
зачем в шарпах например using
источник

g

gavr in ru.nim.talks
це етакий дефер
источник

f

for(int c; (c = getc... in ru.nim.talks
а, ну если без ARC
источник

f

for(int c; (c = getc... in ru.nim.talks
тогда да
источник

g

gavr in ru.nim.talks
проблема что с ORC все все еще недетерминированно, по крайней мере циклы
источник

g

gavr in ru.nim.talks
если пометить всю стд где управление ресурсами как ациклик, то будет топ
источник

f

for(int c; (c = getc... in ru.nim.talks
это как я понял похоже на with из питона?
источник

g

gavr in ru.nim.talks
угу
источник