fork download
  1. #include <cstddef>
  2. #include <cassert>
  3. #include <vector>
  4. #include <boost/array.hpp>
  5.  
  6. typedef unsigned UINT;
  7. typedef unsigned char BYTE;
  8.  
  9. std::size_t const DATA_SIZE = 6;
  10.  
  11. struct Data
  12. {
  13. UINT a;
  14. BYTE b;
  15. BYTE c;
  16. BYTE d;
  17.  
  18. Data() : a(), b(), c(), d() { }
  19.  
  20. Data(boost::array<BYTE, DATA_SIZE> const& data)
  21. : a(data[0] << 16 | data[1] << 8 | data[2]),
  22. b(data[3]),
  23. c(data[4]),
  24. d(data[5])
  25. { }
  26. };
  27.  
  28. inline bool operator ==(Data const& lhs, Data const& rhs)
  29. {
  30. return lhs.a == rhs.a && lhs.b == rhs.b && lhs.c == rhs.c && lhs.d == rhs.d;
  31. }
  32.  
  33. int main()
  34. {
  35. boost::array<boost::array<BYTE, DATA_SIZE>, 2> const source =
  36. {{
  37. {{ 0x01, 0xfe, 0xaa, 0x01, 0xcc, 0x13 }},
  38. {{ 0x02, 0xa1, 0x02, 0xbb, 0x02, 0xdd }}
  39. }};
  40.  
  41. std::vector<Data> data_list(source.begin(), source.end());
  42.  
  43. assert(data_list[0] == Data(source[0]));
  44. assert(data_list[1] == Data(source[1]));
  45. }
Success #stdin #stdout 0.01s 2852KB
stdin
Standard input is empty
stdout
Standard output is empty