Recentemente ho aggiornato a GCC 4.4 (MinGW TDM build) e ora il codice follow produce questi avvertimento:C++ avvertimento GCC4.4: array indice è al di sopra limiti di matrice
Nel vuoto Console :: stampa funzione membro' (std :: string const &) ':
avvertimento: array indice è al di sopra limiti di matrice
Ecco il codice:
void Console::print(const std::string& str) {
std::string newLine(str);
if(newLine.size() > MAX_LINE_LENGTH) {
sf::Uint32 stringSize = newLine.size();
for(sf::Uint32 insertPos = MAX_LINE_LENGTH;
insertPos < stringSize; insertPos += MAX_LINE_LENGTH) {
newLine.insert(insertPos, "\n");
}
}
StringList tokens;
boost::split(tokens, newLine, boost::is_any_of("\n"));
for(StringList::iterator it = tokens.begin();
it != tokens.end(); ++it) {
addLine(*it);
}
}
Qualche idea?
Sono le ottimizzazioni che stanno facendo ...
Inoltre sembra essere questa linea, che sta causando:
boost::split(tokens, newLine, boost::is_any_of("\n"));
Ah, sì, l'ho trovato , è l'argomento per boost :: is_any_of(), avvolgendolo in un costruttore di string() l'avviso scompare, grazie a tutti per il vostro aiuto :)
boost::split(tokens, newLine, boost::is_any_of(string("\n")));
Presumibilmente il compilatore ha anche indicato un numero di riga per l'errore? Si prega di indicarlo nel codice tramite un commento. –
Per curiosità, lo fa ancora se dichiari 'stringSize' come' const'? –
Non fornisce la riga #, l'avviso che ho postato è il testo esatto del compilatore. – Adam