строка не работает. Как я бы мог в эту функцию func ничего не указывать? Когда я пытаюсь собрать программу, то на 12-й строке пишет "cannot bind non-const lvalue reference of type ‘std::optional<char>&’ to an rvalue of type ‘std::optional<char>’ 19 | func(std::nullopt);".
Да в целом-то всё в ошибке написано: нельзя временный объект (std::optional, созданный из std::nullopt) передать как неконстантную lvalue-ссылку Пофиксить можно несколькими способами: 1) Передавать const std::optional<..>& 2) Передавать std::optional<..>&& 3) Передавать по значению 4) Создать std::optional из std::nullopt до вызова функции, а полученную переменную передать в функцию Зависит от того, какую семантику несет функция func`
Обсуждают сегодня