Вопросы по теме 'boost-variant'
Самый эффективный способ хранения смешанной коллекции двойных и целых чисел
Мне нужно сохранить набор целых и двойных чисел (представляющих номинальные и реальные данные) в С++. Очевидно, я мог бы хранить их все в std::vector<double> , но это кажется немного неправильным и не дает бонусных баллов за эстетику.
Я...
526 просмотров
schedule
13.12.2022
boost:: variant рекурсивная проблема
есть ли способ сделать эту работу? Надеюсь, вы поняли, я пытаюсь создать список с помощью рекурсивных пар
#include <boost/variant.hpp>
#include <utility>
struct nil {};
typedef boost::make_recursive_variant<nil, std::pair<int,...
1401 просмотров
schedule
09.07.2022
Как работают boost :: variant и boost :: any?
Как вариант и любой из библиотеки повышения работают внутри? В проекте, над которым я работаю, я сейчас использую помеченный союз. Я хочу использовать что-то еще, потому что объединения в C ++ не позволяют использовать объекты с конструкторами,...
30080 просмотров
schedule
03.08.2023
Передайте объект типа, агрегированного boost::variant, в функцию, которая принимает этот boost::variant
Предположим, у меня есть:
class TypeA { };
class TypeB { };
typedef boost::variant<TypeA, TypeB> Type;
Хорошо:
void foo(Type t) { };
int main(){
TypeA a;
foo(a);
}
#P3# void foo(Type &t) { };
int main(){...
1092 просмотров
schedule
04.10.2023
boost::вариантная реализация
Мне просто интересно узнать о реализации boost::variant .
Это так работает?
Два члена:
Число, представляющее текущий сохраненный тип (т. е. 0 для первого параметра шаблона, 1 для второго параметра шаблона и т. д.)
Объединение всех...
2632 просмотров
schedule
30.11.2023
вариант повышения с пользовательскими классами
Я пробовал boost-variant с пользовательскими классами. Я понял, что безопасным способом доступа к содержимому класса является использование boost::static_visitor . Вы знаете, почему приведенный ниже код не компилируется? Есть ли какие-либо...
2593 просмотров
schedule
02.07.2022
Является ли класс посетителя boost::variant обязательным?
Должен ли я использовать класс посетителя, такой как class Visitor : public boost::static_visitor<> , с boost::variant?
Если нет, то есть ли причины не использовать посетителя? Есть ли причины предпочесть класс посетителей?
Я задаю этот...
278 просмотров
schedule
30.07.2022
Должен ли я использовать boost:: variant?
Моя виртуальная функция может возвращать либо один T , либо std::vector<T> . Стоит ли возвращать boost::variant<T, std::vector<T>> в этом случае или лучше всегда возвращать std::vector<T> ? Что выглядит лучше и имеет...
313 просмотров
schedule
22.01.2023
Вывод типа boost::variant с использованием boost::spirit::karma
Я пытаюсь вывести параметры, они могут быть либо одним параметром, либо вектором параметров. Следующий код не делает то, что я хотел бы сделать:
#include <iostream>
#include <string>
#include <boost/variant.hpp>
#include...
239 просмотров
schedule
22.04.2023
QVariant против boost::any против boost::variant
Мне нужен эффективный способ хранения значений разных типов (int, float, QString или std::string, bool) в одном из «универсальных» контейнеров, таких как QVariant.
Я хочу архивировать меньшее использование памяти.
Я предпочитаю контейнер,...
2867 просмотров
schedule
25.12.2022
C++: вложенная карта
Вот определение:
struct nmap;
struct nmap: map<string, boost::variant<string, nmap*>>{};
Последняя строка ниже не работает:
nmap my_map;
my_map["a"] = "b";
my_map["c"] = new nmap;
my_map["c"]["d"] = "e";
Что мне нужно...
1137 просмотров
schedule
23.05.2023
boost::variant и полиморфизм
Я хочу получить указатель на базовый класс из варианта повышения, если я поставлю исходный указатель на производный класс. Есть ли способ добиться этого. Следующий код не работает.
class A{ public: virtual ~A(){}}; class B : public A{};
typedef...
2063 просмотров
schedule
04.04.2023
Правильно ли реализован этот посетитель?
Я внедряю посетителя, чтобы использовать его с библиотекой вариантов ускорения . Я хочу знать, правильно ли специализировать boost::static_visitor<> с константным ссылочным типом.
Обратите внимание, что мой вопрос здесь следующий:...
342 просмотров
schedule
11.07.2022
Возможная ошибка в повышении посещаемости
У меня есть следующее сообщение об ошибке:
/usr/include/boost/variant/detail/visitation_impl.hpp:207: typename Visitor::result_type boost::detail::variant::visitation_impl(int, int, Visitor &, VPCV, mpl::true_, NBF, W *, S *) [W =...
883 просмотров
schedule
29.11.2022
boost::variant с недвижимыми типами
У меня есть тип T , который не поддерживает движение:
struct T {
T();
T(T const&) = delete;
T& operator=(T const&) = delete;
T(T&&) = delete;
T& operator=(T&&) = delete;
};
Как создать...
122 просмотров
schedule
17.09.2022
Как упростить плюсовое действие на форсированном варианте?
У меня есть определение типа варианта повышения:
typedef boost::variant< bool, int, float, double> VariantType;
Я хочу реализовать на нем действие добавления/вычитания/умножения/разделения. Возьмем, к примеру, Добавить класс. Проблема...
294 просмотров
schedule
20.01.2023
Получить базовый тип boost::variant
Мы можем использовать get<i>(var) для получения типа ith boost::variant, где i обычно является известной константой времени компиляции. Однако в некоторых случаях i известно только во время выполнения. Например:
void do_process(int...
280 просмотров
schedule
22.02.2023
Как получить значение boost::variant для шаблонного класса
Я пытаюсь использовать boost::variant в С++ 11, чтобы создать это, но я не знаю, как это сделать. Итак, у меня есть эта структура данных шаблонного класса‹>
typedef boost::variant< data<A>,data<B>> dataVar;
хранится в...
478 просмотров
schedule
14.09.2022
Классификация типов в варианте Boost с использованием посетителя не компилируется
Я использую boost-variant во всех своих проектах. В одном сценарии мне нужно классифицировать типы, содержащиеся в моем boost-variant , на несколько классов. Так как у меня довольно много типов в моем варианте, я пришел к идее определить...
343 просмотров
schedule
04.07.2022
Получить элемент по индексу из boost::variant, как это возможно с std::variant
С помощью std::variant<int, bool> я могу вызвать std::get<0>(var) , чтобы получить значение в варианте первого типа — int .
Как я могу сделать это с boost::variant ? boost::get<> , кажется, поддерживает получение только по...
1338 просмотров
schedule
21.05.2022