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.


Anmelden zum Antworten