ja niedawno zmodernizowane do GCC 4.4 (MinGW TDM build), a teraz kod obserwacji produkuje te ostrzeżenie:C++ ostrzeżenie GCC4.4: indeks tablicy jest powyżej granice tablicy
W konsoli :: void print funkcja składowa” (const std :: string &) ':
ostrzeżenie: indeks tablicy jest powyżej granice tablicy
Oto kod:
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);
}
}
Jakieś pomysły?
Jest optymalizacje, które to robią ...
również wydaje się być to linia, która jest przyczyną go:
boost::split(tokens, newLine, boost::is_any_of("\n"));
Ach tak, znalazłem go , jest argumentem dla boost :: is_any_of(), przez zawinięcie go w konstruktorze string() ostrzeżenie odchodzi, dziękuję wszystkim za pomoc :)
boost::split(tokens, newLine, boost::is_any_of(string("\n")));
Prawdopodobnie kompilator podał również numer linii dla błędu? Proszę podać go w swoim kodzie za pomocą komentarza. –
Z ciekawości, czy nadal to robi, jeśli zadeklarujesz 'stringSize' jako' const'? –
To nie daje linii #, ostrzeżenie, które tam wysłałem, to dokładny tekst z kompilatora. – Adam