fork download
  1. #include <new>
  2. #include <type_traits>
  3. #include <iostream>
  4.  
  5. #pragma pack(push, 1)
  6.  
  7. class Haus
  8. {
  9. public:
  10. int zimmer;
  11. int bad;
  12. int flur;
  13. };
  14.  
  15. #pragma pack(pop)
  16.  
  17. static_assert(std::is_trivially_copyable<Haus>::value);
  18.  
  19. char memory[sizeof(Haus)] = { 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0 };
  20.  
  21. auto main() -> int
  22. {
  23. const Haus& haus = *(new(memory) Haus);
  24. std::cout
  25. << haus.zimmer << "\n"
  26. << haus.bad << "\n"
  27. << haus.flur << "\n";
  28. haus.~Haus();
  29. }
Success #stdin #stdout 0s 4512KB
stdin
Standard input is empty
stdout
1
2
3