Вопросы по теме 'boost-variant'

Что эквивалентно boost :: variant в стандартной библиотеке C ++?
Ищу альтернативу соединению в стиле C. boost :: variant - одна из таких опций. Есть ли что-нибудь в std C ++? union { int i; double d; }
10156 просмотров
schedule 10.11.2021

Boost.Любое vs. Boost.Variant
У меня возникли проблемы с выбором между Boost.Any и Boost.Variant. Когда мне следует использовать каждый из них? Каковы преимущества и недостатки каждого из них? Я в основном хочу сохранить некоторые состояния из внешних источников.
21978 просмотров
schedule 15.03.2022

Boost Variant: как получить текущий удерживаемый тип?
Насколько я понял, анализируются все типы boost.variant в реальные типы (имеется в виду, как если бы boost variant<int, string> a; a="bla-bla" после компиляции превратился бы в string a; a="bla-bla" ) И вот мне интересно: как получить,...
58049 просмотров
schedule 03.05.2022

шаблон посетителя для boost::variant
Я хотел бы использовать boost.variant<T0,T1,T2> в качестве параметра для класса шаблона «Посетитель», который будет предоставлять операторов посетителей в соответствии с требованиями механизма посетителей boost.variant, в этом случае все...
12891 просмотров
schedule 25.06.2022

multi_index_container не работает с рекурсивным вариантом из-за неоднозначного оператора =
Представьте, что мы хотим смоделировать структуру C с динамическими типами C++. т.е. у нас есть набор полей, каждое поле имеет имя и значение. Значением может быть простой примитивный тип (скажем, просто int для примера) или другая структура, то...
176 просмотров

Сравнение производительности boost::get() и boost::apply_visitor
Я использую boost::variant и хотел узнать, какой подход лучше (с точки зрения производительности) для извлечения значений из варианта. С моим тестом производительности на примере данных я обнаружил, что применение посетителя выполняется быстрее,...
529 просмотров
schedule 22.09.2022

Концепции буст-дух-карма и буст-вариант, связанные с автогенераторами
Мне нужно десериализовать std::vector<boost::variant<..>> с оформлением, предоставленным другими объектами. Одна из вещей, которую позволяет «украшение», — это пустая запись в векторе. Я ударил кирпичную стену в моей реальной...
719 просмотров

ADL не может найти оператора потока с соответствующими квалификаторами для определенного пользователем типа
Я компилирую службу x64 в Microsoft Windows 7 с Visual Studio 2010, используя Увеличить вариант примерно так: namespace my_ns { typedef struct {} empty_t; typedef std::pair<size_t, std::shared_ptr<char>> string_t; typedef...
266 просмотров
schedule 18.07.2023

отфильтровать вектор варианта повышения в новый вектор?
Я ищу лучший способ отфильтровать вектор варианта повышения, который был определен следующим образом: boost::variant<T1*, T2, T3> Var; std::vector<Var> Vec; когда я вызываю этот вектор, как лучше всего отфильтровать только...
618 просмотров
schedule 15.01.2023

boost::variant с ограниченным по ссылке типом, не способным присвоить значение
У меня есть boost::variant: B — неполный тип, поэтому у меня есть две возможности объявить свой вариант typedef boost::variant<B*, char, int> vari; // this works typedef boost::variant<B&, char, int> vari; // this works also...
402 просмотров
schedule 27.03.2023

Увеличить значение boost::variant
У меня есть вариантная переменная, в которой все разные типы реализуют operator++ . Я хотел бы применить приращение непосредственно к переменной варианта. Есть ли простой способ сделать это? Или я должен применить его в переключателе для каждого...
307 просмотров
schedule 03.01.2023

Как проверить, является ли тип шаблона одним из типов вариантного типа?
Принимая во внимание тип варианта и функцию шаблона, как я могу проверить, что тип шаблона является одним из типов варианта? Есть ли более элегантный способ, чем следующий? typedef boost::variant<Foo,Bar> Var; template <typename T>...
846 просмотров
schedule 22.09.2023

Boost Any to Boost Variant с помощью Boost Preprocessor
В своих проектах я полностью использую boost::any и boost::variant . Для этого в моем предыдущем вопросе была разработана общая процедура преобразования из boost::any в boost::variant Общая функция для преобразования boost::any в...
174 просмотров

Определите, можно ли хранить тип в boost::variant
Я уже некоторое время пользуюсь boost::variant , но все еще есть некоторые вопросы, которые меня озадачивают. Следующий код не компилируется, так как я пытаюсь сохранить std::pair<int, int> в boost::variant , который может содержать...
134 просмотров
schedule 01.12.2023

Сохранение указателей на функции с разными типами c++ boost::bind
Я сегодня немного покопался и ничего не нашел. Есть ли способ сохранить функтор, возвращаемый из boost::bind, с разными типами? Я нашел пример, который использовал boost::variants, но не уверен, что это нужно. (Foo и Bar были упрощены для простоты)...
893 просмотров

Неоднозначная конструкция варианта Boost
В документации Boost Variant говорится следующее о конструкторе, который принимает произвольный тип: template<typename T> variant(T & operand); Требования: T должен однозначно преобразовываться в один из ограниченных типов...
1200 просмотров
schedule 27.03.2024

Получить int из boost:: variant сгенерировать ошибку сегментации
Я пытаюсь получить значение int из boost::variant. Код генерирует ошибку сегментации - почему? Я добавляю комментарии в код, какие строки вызывают ошибку. Я предполагал, что int numberInt = boost::get<int>(v); не будет работать...
523 просмотров
schedule 14.05.2024

реализация класса посещения в другом классе
Я пытаюсь определить тип boost::variant в объекте класса для выполнения связанных функций-членов. Рассмотрим следующий код: #include <cstdio> #include <cassert> #include <iostream> #include <boost/variant.hpp> #include...
152 просмотров
schedule 26.05.2024

Segfault с форсированным вариантом
Я начал создавать небольшой тип данных, и на текущем этапе у меня есть только один рекурсивный тип в усиленном варианте. Оказывается, я получаю segfault, когда пытаюсь создать экземпляр своего типа. Если я поставлю строку перед рекурсивным типом,...
424 просмотров
schedule 13.06.2024