fe.settings:getUserBoardSettings - non array given[rus] - Endchan Magrathea
thumbnail of laisi.png
thumbnail of laisi.png
laisi png
(31.1 KB, 434x756)
thumbnail of llvm ir.png
thumbnail of llvm ir.png
llvm ir png
(99.32 KB, 648x857)
Оуфигеть, еле скомпилировал пикрилейтед.
В итоге ввёл большую часть класса, ещё и self-тип. Можете поглядеть на LLVM IR, если поймёте что-то. Что закоментировано тоже работает, проверил.
В классах надо ещё ввести передачу self*. Потом пора будет переходить к перегрузке функций и операторов. В частости, внутри классов можно будет писать методы для перегрузки init, del, index, get, set и другие одноаргументные.
Перегружать операторы сложения, умножения и прочих двуаргументных как-то мне видится некрасивым. Лучше их писать отдельно, к тому же те же вектора math.vec надо иметь возможность складывать, у которых разные подтипы. Например vec3 и vec3 и написать просто template with V0(vec!N!),V1(vec!N!) func (V0 out,[V0 in0,V1 in1])...
А в случае именованных классов это же на самом деле макросы, представляющие из себя дженерики и если сделать add методом, то можно, чтобы только один тип самого себя принимался.

только заметил, что функция метода называется .m0, а не abc.m0, надо исправить