• 0 Posts
  • 4 Comments
Joined 3 months ago
cake
Cake day: March 13th, 2025

help-circle

  • In general, ‘classes’ declarations were done with macro. I don’t remember the exact code — something akin to

    BEGIN_CLASS(A, Parent);
    CLASS_MEMBER(a...)
    END_CLASS();
    

    The project had started before C++ existed, and the switch would be too costly. It’s not just OOP part, also reflection mechanism with bindings to the homemade scripting language, and multi-platform UI library. It was a gem of its time.


  • I was working on a C code base with classes, inheritance, and polymorphism, all done by hands and macros.

    Something like

    typedef struct s_some_class {
        void (*method)(this *s_some_class);
    } t_some_class;
    

    Overall, learning C was the best enabler in my whole career. For instance I was learning Python by tinkering with CPython VM, so when I see these ‘WAT’ quircks I know exactly what’s up.