Предупреждение начинается со строки, где я обращаюсь к строкам[0], и все, начиная с этого момента, отображается серым цветом. Когда я заменяю пользовательский вектор на std::vector, предупреждение исчезает.
Код: Выделить всё
...
typedef Vector VectorInt;
typedef Vector VecVecString;
...
int LongestLineCount(ifstream & inT) {
VecVecString lines;
Scanner scanner;
scanner.setSpaceOption(Scanner::IgnoreSpaces);
// Read all lines and tokenize
while (true) {
string line;
getline(inT, line);
if (inT.fail()) break;
scanner.setInput(line);
Vector tokens;
while (scanner.hasMoreTokens()) {
tokens.add(scanner.nextToken());
}
lines.add(tokens);
}
// Check if file was empty
if (lines.isEmpty()) {
return 0;
}
// Find line with most tokens
Vector max = lines[0]; // max.size()) {
max = lines[i];
}
}
return max.size();
}
- Код после строк[0] следует считать достижимым, посколькуlines.isEmpty() уже проверена.
- Эта функция должна вести себя так же, как эквивалентная версия, использующая std::vector.
- Строки после доступа к строкам[0] помечены как Недоступны.
- Код работает нормально во время выполнения.
- Предупреждение исчезает при замене пользовательского типа Vector на std::vector.
Буду признателен за любой совет или объяснение.
Я использую
- c++98/c++11
- CLion — сборка № CL-252.27397.114, построенная 24 октября 2025 г.
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-not-with
Мобильная версия