Предупреждение С++: функция, не являющаяся void, не возвращает значение во всех путях управленияC++

Программы на C++. Форум разработчиков
Anonymous
Предупреждение С++: функция, не являющаяся void, не возвращает значение во всех путях управления

Сообщение Anonymous »

Предупреждение: непустая функция не возвращает значение во всех путях управления...
Я знаю, что это значит, потому что циклы for ничего не возвращают, когда данные пусты.
как бы вы это исправили.

Код: Выделить всё

template
auto get(std::string argument_name) -> T {
if (argument_name.length() = 2) {
argument_name = "--" + helpers::convert_string_tolower(argument_name);
}

for (const auto &p_n: parser.storage | std::views::keys) {
for (const auto &[a_s_n, a_l_n] : parser.storage[p_n] | std::views::keys) {
if (argument_name == a_s_n || argument_name == a_l_n) {
ArgumentNamePair a_p = std::make_pair(a_s_n, a_l_n);
if (parser.storage[p_n][a_p].contains("value")) {
return std::get(parser.storage[p_n][a_p]["value"]);
}
}
}
}
}
это моя основная функция, о которой я получаю это предупреждение:

Код: Выделить всё

ArgumentParser program("");
program.get("argument_1"); // here i get the warning.
проблема в том, что я не могу вернуть NULL, поскольку я указал здесь тип данных program.get("argument_name");< /п>

Подробнее здесь: https://stackoverflow.com/questions/786 ... trol-paths

Вернуться в «C++»