I récemment mis à jour à GCC 4.4 (MinGW TDM build) et maintenant le code de suivi produit des mises en garde:C++ avertissement GCC4.4: souscript de tableau est au-dessus des limites du tableau
Dans vide print :: Console » fonction membre (const std :: string &) ':
avertissement: est au-dessus souscript de tableau limites du tableau
Voici le code:
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);
}
}
Des idées?
Ce sont les optimisations qui le font ...
En outre, il semble être cette ligne qui est à l'origine:
boost::split(tokens, newLine, boost::is_any_of("\n"));
Ah oui, je l'ai trouvé , c'est l'argument pour boost :: is_any_of(), en l'enveloppant dans un constructeur string() l'avertissement s'en va, merci à tous pour votre aide :)
boost::split(tokens, newLine, boost::is_any_of(string("\n")));
Vraisemblablement, le compilateur a également donné un numéro de ligne pour l'erreur? Veuillez l'indiquer dans votre code via un commentaire. –
Par curiosité, le fait-il toujours si vous déclarez 'stringSize' comme' const'? –
Il ne donne pas la ligne #, l'avertissement que j'ai posté il y a le texte exact du compilateur. – Adam