std::make_unique<Formula>(std::move(expression)); //тут ошибка
}
No viable conversion from returned value of type 'unique_ptr<Formula>' to function return type 'unique_ptr<FormulaInterface>'
это как так?
Стикер
Мейкюник делай для интерфейса
что-то делаешь неправильно, умные указатели умеют неявно преобразовываться к базовому : https://godbolt.org/z/shEWGs8j9
ну, это код яндекса ахахах)
там надо во временную переменную сложить результат мейк юника, а потом вернуть
кмк надо смотреть на объявления классов
дайте весь код
самый типичный хак для работы этого ковариантного преобразования
Это как-то меняет правила C++?
так выше кидали пример, что оно и неявно конвертируется
Обсуждают сегодня