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 QStrings

    Wie gesagt, unter linux rennt es durch und laeuft!


  • Mod

    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


Anmelden zum Antworten