Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1.  
  2. //////////////// Source.h
  3. #include <iostream>
  4. #include <map>
  5.  
  6.  
  7. typedef std::map<uint32_t, uint32_t*> r_t;
  8.  
  9. #define REG_ARRAY_BASE(name) class array_##name \
  10. {\
  11. public: \
  12.     array_##name(r_t & rep) \
  13.     { \
  14.     } \
  15. protected: \
  16. name m[10]; \
  17. }
  18.  
  19.  
  20. #define REG_ARRAY(name, parent_class) class array_##name : public array_##parent_class \
  21. {}\
  22.  
  23.  
  24.  
  25. struct b {
  26.     uint32_t meow;
  27. };
  28.  
  29. REG_ARRAY_BASE(b);
  30.  
  31. struct bb : b {
  32.  
  33. };
  34.  
  35. REG_ARRAY(bb, b);
  36.  
  37.  
  38. struct common {
  39.     static r_t rep;
  40.     array_bb bb{ rep };
  41. };
  42.  
  43.  
  44. ///////////////////////////////// Source.cpp
  45.  
  46. #include <iostream>
  47. #include "Source.h"
  48.  
  49.  
  50. int main() {
  51.  
  52.  
  53.     common c = common();
  54.  
  55.     std::map<std::uint32_t, array_b *> registers;
  56.  
  57.     registers[1] = &c.bb;
  58.  
  59.  
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement