Hi,

I am overloading the operator>>() and operator<<() for QDataStream to serialize my own data blocks.
For writing in to binary file:
Qt Code:
  1. QDataStream & operator<<( QDataStream &s, AtmosBBlock &data)
  2. {
  3. QByteArray b_data;
  4. b_data.resize(sizeof(data));
  5. memcpy(b_data.begin(),&data,sizeof(data));
  6. s<<b_data;
  7. return s;
  8. }
To copy to clipboard, switch view to plain text mode 
For reading from binary file:
Qt Code:
  1. QDataStream & operator>>( QDataStream &s, AtmosBBlock &data)
  2. {
  3. QByteArray b_data;
  4. b_data.resize(sizeof(data));
  5. s>>b_data;
  6. memcpy(&data,b_data.begin(),sizeof(data));
  7. return s;
  8. }
To copy to clipboard, switch view to plain text mode 
The problem is, that s>>b_data is resulting in a 0 sized QByteArray, and I don't understand why.
To check if the problem is in the written file I did the following:
Qt Code:
  1. QDataStream & operator>>( QDataStream &s, AtmosBBlock &data)
  2. {
  3. QByteArray b_data;
  4. b_data.resize(sizeof(data));
  5. s.readRawBytes((char*)&b_data,sizeof(b_data));
  6. memcpy(&data,b_data.begin(),sizeof(data));
  7. return s;
  8. }
To copy to clipboard, switch view to plain text mode 
This reads the file correctly with the previously written data.

Any idea why s>>b_data returns a 0 sized QByteArray?

Thanks in adavance.