passing `const QString' as `this' argument of `QString& QString::remove(int, int)' discards qualifiers
-
Nabend, ich bins mal wieder
ich hab heute ein kleines C++/Qt-Programm unter linux fertiggestellt und wollte das nun auf Windows Ueberfuehren. Dazu hab ich mir auf Windows das Qt 4.3.3 Fertigpacket sowie ein aktuelles MinGW dazugepackt. Die exakt gleichen sourcen wie unter Linux laufen aber nicht durch. Sowohl Eclipse/CDT als auch ein normales make bringen einen Fehler:passing `const QString' as `this' argument of `QString& QString::remove(int, int)' discards qualifiers
der betreffende Code-Abschnitt komplett:
void FAT12_Decoder::step1( const QString& newValue ) { nibbles.clear(); while ( newValue.length() ) { nibbles << newValue.left( 2 ); newValue.remove(0, 2); // <<<<<<<<<<<<<<<<< } QString tmp; for ( int i = 0; i < nibbles.size(); i++ ) { tmp = nibbles[i]; if ( tmp.length() % 2 == 0 ) { nibbles[i][0] = tmp[1]; nibbles[i][1] = tmp[0]; } } line_step1->setText( nibbles.join( " " ) ); if ( nibbles.size() == 1 ) { n_nibbles->setText( tr( "%1 Nibble" ).arg( nibbles.size() ) ); } else { n_nibbles->setText( tr( "%1 Nibbles" ).arg( nibbles.size() ) ); } }
Die mit "<<<<<<<<" markierte Zeile scheint den Fehler zu verursachen. Das ganze sagt mir nun aber garnix
nibbles ist eine QStringList, der Rest sind QStringsWie gesagt, unter linux rennt es durch und laeuft!
-
newValue ist const, und lässt sich daher nicht verändern. Wundert mich aber das das angeblich unter Linux läuft
Hab bisher eher die Erfahrung gemacht, das unter Windows manches durchgeht, was unter Linux dann nicht kompiliert.
-
jau, das wars... ich hatte mich zwar gewundert, dass ich unter Linux keine Fehler bekomme wenn ich in einem const QString rummanipuliere, diese Gedanken dann aber schon vergessen gehabt, als ich das hier ausprobiert hab. Nun muss ich das nur noch statisch linken und mein erstes C++/Qt-Programm ist fertig