BinaryParser
-
auto_ptr<string> getString(int num) { auto_ptr<string> retVal(new string); retVal->resize(num); for(int i=0; i<num; ++i) (*retVal)[i] = data[pos +i]; pos += num; return retVal; }
Erstens ist der auto_ptr-Konstruktor explicit (auch wenn dein Codeschnipsel etwas anderes sagt) und zweitens musst du auf die Operatorenpräzedenz achten. Noch schöner wäre hier aber vermutlich:
auto_ptr<string> getString(int num) { auto_ptr<string> retVal(new string(&data[pos], &data[pos + num])); pos += num; return retVal; }
-
DWORD getDWORD(void){ char c[4]; for(int i=0; i<4; ++i) c[i] = data[pos +i]; DWORD retVal = *reinterpret_cast<DWORD*>(c); pos+=4; return retVal; }
was soll hier das kopiere? du kannst doch direkt data[pos] casten.
und was sollen die ganzen get methoden? mach ein template. dann kann der user auch nach was parsen, was du noch nicht kanntest.