Они все не работают так, как нужно, ибо я не могу вернуть значение из std::any, явно не указав при этом тип, который я хочу вернуть
Можешь вызывать функцию с конкретным типом. Как с std::visit. Только нужно немного извращаться если именно std::any
Вчера я делал такое, но мне нужно именно присвоить одной переменной значение динамического типа, а не в виде функций сделать, которые принимают разные типы. Просто, например, auto VarWithAnyType = GetValue(); , и чтобы VarWithAnyType мог иметь абсолютно любой тип. Но такое по видимому на плюсах невозможно)
Ну оно нигде невозможно из динамического типа получить статический
Можно если заранее известно множество типов
Мне как раз заранее известно
Тогда это просто variant
Ну я про то что например из std::variant<int, double> получить в зависимости от индекса инт или дабл
Ты должен туда присвоить а не получить
Там опять же нужно использовать visit для получения значения, а вот как из visit вернуть переменную динамического типа - вопрос
Я говорю auto var = variant.get_value(); Условно такой код. Где вар в зависимости от индекса разного типа
Мне в итоге нужно получить просто переменную нужного типа, чтобы передать ее в другую функцию. Та другая функция в качестве аргументов должна принимать только нужные переменные нужных типов, без контейнеров/врапперов. А если еще точнее, то parameter pack из нужных переменных
Это как раз колбеком пока решается
Если хочешь как в питоне просто берешь и везде вставляешь свой вариант и работаешь с ним
Так если тебе известен тип параметра какие проблемы кастить?
Что именно имеется в виду под функцией get_value()? Нужно же явно указать возвращаемый тип, например get_value<int>() чтобы функция вернула именно нужный тип
Обсуждают сегодня