配列の範囲を超えていると、今次のコードでは、これらの警告生成:C++ GCC4.4警告:配列の添字は、私は最近、GCC 4.4(MinGWののTDMビルド)にアップグレード
メンバー関数「のボイドコンソール::印刷での(CONSTのstd ::文字列&) ':
警告:配列の添字は、配列の境界上にある
ここでは、コードは次のとおり
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);
}
}
アイデア?
それは
またそれを引き起こしているこの行のように見える...それをやっているの最適化である。
boost::split(tokens, newLine, boost::is_any_of("\n"));
はいああ、私はそれを見つけましたboost :: is_any_of()の引数で、string()コンストラクタにラップすることで警告が消えてくれます。あなたの助けに感謝します。
おそらく、コンパイラはエラーの行番号も指定しましたか?あなたのコードにコメントを記入してください。 –
「stringSize」を 'const'と宣言しても、好奇心をそそりません。 –
それは行#を与えていない、警告私はそこにコンパイラからの正確なテキストが掲載されています。 – Adam