Size: a a a

2021 February 26

SG

Serg Gini in dlang.ru
ᏒAᎩ
Да)
Нормас. То есть найти работу на Ди даже реально)
источник

ᏒAᎩ in dlang.ru
Serg Gini
Нормас. То есть найти работу на Ди даже реально)
Реально. Но только если ты не её ищешь)
источник

МВ

Макс Воробьев... in dlang.ru
mixin template GRegisterStaticType(Typename, string gtypename) 
{
   private extern(C) static void init_g_object(void* self) {
       auto asGObject = cast(GObject*)self;
       new Typename(asGObject);
   }

   static GType getType()
   {
       static GType type = GType.INVALID;
       if (type == GType.INVALID) {
           alias ParentType = BaseClassesTuple!Typename[0];
           GType parent_g_type = ParentType.getType();
           GTypeQuery parent_type_query;
           Type.query(parent_g_type, parent_type_query);
           static GTypeInfo info = {
               parent_type_query.classSize,
               null,
               null,
               null,
               null,
               null,
               parent_type_query.instanceSize,
               0,
               &init_g_object,
               null
           };

           type = Type.registerStatic(parent_g_type, gtypename, &info, cast(GTypeFlags) 0);
       }
       return type;
   }
}
источник

МВ

Макс Воробьев... in dlang.ru
../src/utils/GObjectType.d(61): Error: variable parent_type_query cannot be read at compile time
источник

МВ

Макс Воробьев... in dlang.ru
какого черта parent_type_query читается в Ct ?
источник

МВ

Макс Воробьев... in dlang.ru
как выключить ctfe для static ?
источник

МВ

Макс Воробьев... in dlang.ru
окей. инициализация через {} видимо ct only
источник

МВ

Макс Воробьев... in dlang.ru
очередной wtf
источник

МВ

Макс Воробьев... in dlang.ru
mixin template ConstructorFromGObjectStruct() {
   this(GObject * gstruct, bool owned = false) {
       super(gstruct, false);
   }
}

    private extern(C) static void init_g_object(void* self, void* klass) {
       auto asGObject = cast(GObject*)self;
       auto t = new Typename(asGObject);
       t.ref_();
   }

class A : ObjectG 
{
   mixin ConstructorFromGObjectStruct!();
   mixin GRegisterStaticType!(A, "TestTypeA");

   // this() {
   //     super(getType, []);
   // }

   ~this() {
   }
}
'
источник

МВ

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

МВ

Макс Воробьев... in dlang.ru
как только добавляю this() {} - new Typename(asGObject); не находит конструктор this(GObject * gstruct, bool owned = false)
источник

МВ

Макс Воробьев... in dlang.ru
ААААА!!!!
источник

МВ

Макс Воробьев... in dlang.ru
../src/utils/GObjectType.d(49): Error: constructor utils.GObjectType.A.this() is not callable using argument types (GObject*)
источник

МВ

Макс Воробьев... in dlang.ru
is(typeof(new T(cast(typeof(T.tupleof[0]))gObject, false))) )
источник

МВ

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

МВ

Макс Воробьев... in dlang.ru
а именно меня смущает T.tupleof[0]
источник

МВ

Макс Воробьев... in dlang.ru
ААААА
источник

0

000Sanya in dlang.ru
Макс Воробьев
а именно меня смущает T.tupleof[0]
чем?
источник

МВ

Макс Воробьев... in dlang.ru
источник

МВ

Макс Воробьев... in dlang.ru
эта херня явно требует, что-бы в наследнике первым полем был поинтер на GObject* или его производные
источник