Size: a a a

2021 February 24

SG

Serg Gini in dlang.ru
скоро всё перепишут на Раст и будет норм
источник

SG

Serg Gini in dlang.ru
там же есть ООП)
источник

g

gavr in dlang.ru
ну да, це логично, если хочешь отнаследоваться от абстрактного и сам реализовать, то надо регать тип
источник

g

gavr in dlang.ru
у путхона ваще халява https://gist.github.com/andialbrecht/4463278
источник

O

Oleg in dlang.ru
Макс Воробьев
а заимплементить интерфейс и передать в С - нет
а какие в С интерфейсы и как их имплементить в самом С?
источник

g

gavr in dlang.ru
Oleg
а какие в С интерфейсы и как их имплементить в самом С?
источник

МВ

Макс Воробьев... in dlang.ru
Oleg
а какие в С интерфейсы и как их имплементить в самом С?
структура с указателями на ф-и
источник

O

Oleg in dlang.ru
их можно сформировать в компилтайме
источник

МВ

Макс Воробьев... in dlang.ru
Oleg
их можно сформировать в компилтайме
не совсем
источник

МВ

Макс Воробьев... in dlang.ru
регистрация типов проходит в рантайме
источник

O

Oleg in dlang.ru
пока не вижу затыков
источник

МВ

Макс Воробьев... in dlang.ru
у питона да - слишком много магии
источник

МВ

Макс Воробьев... in dlang.ru
vala сама на Gtype, по этому в ней проблемы не показать
источник

МВ

Макс Воробьев... in dlang.ru
Oleg
пока не вижу затыков
в рантайме в метод регистрации приходит указатель на структуру, который нужно заполнить
источник

O

Oleg in dlang.ru
extern (C) struct SomeD { void open() { } void close() { }}
fillGtk!(GtkInterface?, SomeD) {
 foreach (member of SomeD) { .. } // генерация методов
 static this() { register(fillGtk) } // регистрация
}
кактотак
источник

МВ

Макс Воробьев... in dlang.ru
Oleg
extern (C) struct SomeD { void open() { } void close() { }}
fillGtk!(GtkInterface?, SomeD) {
 foreach (member of SomeD) { .. } // генерация методов
 static this() { register(fillGtk) } // регистрация
}
кактотак
1) gtk бинды работают через класс, а не структуру. 2) сами интерфейсы в gtkd захватывают не только работу с виртуал методами, но и сигналами
источник

МВ

Макс Воробьев... in dlang.ru
короче да, возможность есть, но нужно подумать
источник

ВК

Виталий Кулич... in dlang.ru
источник

ВК

Виталий Кулич... in dlang.ru
Макс Воробьев
1) gtk бинды работают через класс, а не структуру. 2) сами интерфейсы в gtkd захватывают не только работу с виртуал методами, но и сигналами
В Динрус 1 уже есть подвязка
источник

O

Oleg in dlang.ru
в Д есть какиенить аттрибуты или ref out scope, которые отслеживают жизнь объекта и не позволяют его куданить зассайнить или передать кудато еще
т.е. есть объект с
string getStringToInternalData()
так вот этот стринг не должен кудать то передаться еще или гдето сохраниться, потому что он указывает на внутренние данные, которые могут исчезнуть - часть буфера вернули как стринг, буфер ушел обратно в пул, и если стринг жив, то писта
источник