Кресты / Говнокод #26640 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
#define DECLARE_TYPE(Name, Type) \
    using TYPE = Type; \
    ObjectInterface s_##Type##ObjectInterface (Name, []()->ObjectType* { return new Type;

#define DECLARE_METHODS \
        }, {

#define DECLARE_PROPERTIES \
        }, {

#define DECLARE_METHOD(Method) \
        { #Method, reinterpret_cast <_ObjectMethodProc> (&TYPE::Method) },

#define DECLARE_CUSTOM_NAME_METHOD(Name, Method) \
        { Name, reinterpret_cast <_ObjectMethodProc> (&TYPE::Method) },

#define DECLARE_METHOD_MAPPER(_1,_2,DECLARE_METHOD,...) DECLARE_METHOD
#define METHOD(...) DECLARE_METHOD_MAPPER(__VA_ARGS__, DECLARE_CUSTOM_NAME_METHOD, DECLARE_METHOD)(__VA_ARGS__)

#define PROPERTY(Name, Get, Set) \
        { Name, { reinterpret_cast <_PropertyGettingProc> (&TYPE::Get), reinterpret_cast <_PropertySettingProc> (&TYPE::Set) } },

#define END_DECLARE_TYPE \
        });

???

Запостил: codemonkey codemonkey, (Updated )

Комментарии (10) RSS

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8