Описание тега boost-any

Boost.Any - это библиотека C++, которая предлагает безопасный универсальный контейнер для отдельных значений разных типов значений.
5 ответов

Сравнить надстройку:: любое содержимое

Я использую контейнер для хранения списка указателей на что-либо: struct Example { std::vector<boost::any> elements; } Чтобы вставить элементы в этот контейнер, я написал несколько вспомогательных функций (членов struct Example): void add_any(…
17 май '11 в 09:50
1 ответ

Отображение векторов произвольного типа

Мне нужно хранить список векторов разных типов, на каждый из которых будет ссылаться идентификатор строки. Сейчас я использую std::map с std::string в качестве ключа и boost::any как это значение (пример реализации размещен здесь). Я отклеился при п…
03 май '12 в 15:06
4 ответа

C++ boost::any для определения моей собственной печати,

Я изо всех сил пытаюсь найти, как сделать, чтобы использовать boost::any создать функцию печати, которая может печатать любой тип, используя шаблон в первую очередь. template <typename T> struct printer { void print(ostream& os, const boos…
13 фев '11 в 16:31
1 ответ

C# - Есть что-то похожее на boost::any?

У меня есть требование, где: 1. Мне нужно хранить объекты любого типа в списке 2. Избегайте как можно больше вызовов С этой целью я пытался что-то придумать. Что бы я ни пытался, я не смог избавиться от бокса \ распаковки. Я хотел знать, сталкивался…
23 фев '12 в 11:51
6 ответов

Могу ли я избежать всего этого кратного try/catch

У меня есть вектор много boost::any В этом векторе мне нужно выполнить некоторые операции над std::vector и над элементами типа IContainer class IContainer { public: virtual ~IContainer(){} virtual const boost::any operator[](std::string) const = 0;…
12 июл '13 в 14:34
1 ответ

Boost.Any vs. Boost.Variant

У меня проблемы с выбором между Boost.Any и Boost.Variant.Когда я должен использовать каждый? Каковы преимущества и недостатки каждого? Я в основном ищу хранить некоторые состояния из внешних источников.
02 сен '09 в 08:49
1 ответ

Нужно ли повысить:: любой RTTI?

На веб-сайте Boost я не нашел никакой информации относительно использования или RTTI при помощи boost::any. В нескольких местах я читал, что это требование, но затем я создал простой тестовый проект, и он строится как с RTTI, так и без него. Итак, н…
12 июл '16 в 09:10
1 ответ

boost:: любой номер

Я положил положительный 'int' для моей любой переменной. Затем я пытаюсь привести его к "unsigned long". И я получил исключение по поводу плохого актерского состава. Как я могу сделать использование boost::any_cast более гибким, сохраняя целочисленн…
12 дек '12 в 00:07
2 ответа

boost::any_cast(const any&) использует const_cast<> - разве это не UB?

boost/any.hpp (версия 1.55) определяет (строка 263) template&lt;typename ValueType&gt; inline const ValueType * any_cast(const any * operand) BOOST_NOEXCEPT { return any_cast&lt;ValueType&gt;(const_cast&lt;any *&gt;(operand)); } Однако, используя co…
20 май '14 в 08:42
2 ответа

Доступ к типу в шаблоне с переменным индексом

Я хотел бы получить тип в шаблоне variadic по индексу. Индекс указывается в качестве аргумента шаблона. Мне удалось найти "хак", который работает, но я считаю, что это не в духе вариационного шаблонного программирования. Кроме того, он использует до…
19 апр '15 в 11:01
5 ответов

Как я могу передать "Любые данные" в функцию в C++

Допустим, у меня есть класс Handler с некоторыми подклассами, такими как stringhandler, SomeTypeHandler, AnotherTypeHandler. Класс Handler определяет метод "handle" как общий интерфейс для всех подклассов. Логика "обработки", конечно, совершенно раз…
10 апр '12 в 14:38
1 ответ

Лучшая обработка отсутствующего / неправильного ключа в boost::program_options

Есть ли способ узнать, какой ключ был задействован при сбое вызова, подобного следующему? boost::program_options::variables_map vm; ... int foo_bar = vm["some_key"].as&lt;int&gt;(); Если ключ отсутствует на карте или не конвертируется в int, я получ…
13 апр '11 в 10:42
2 ответа

Сохраняет ли boost::any копию или ссылку / указатель?

Следующий код безопасен? boost::any any_value; { std::string s = "HelloWorld"; any_value = s; } std::string ss = any_cast&lt;std::string&gt;(any_value);
21 июн '12 в 16:34
2 ответа

Можно ли использовать параметры программы Boost без RTTI?

Я хотел бы отключить RTTI в моем проекте. Однако этот проект использует параметры программы Boost, которые сами зависят от Boost Any, который не поддерживает -fno-rtti. Мне было интересно, есть ли какое-либо решение использовать Boost Program без RT…
28 янв '13 в 07:24
0 ответов

Тип возвращаемой переменной в функции, которая возвращает удерживаемый объект boost::any

Скажи у меня класс C с полем типа std::vector&lt;boost::any&gt;, У меня есть оператор индекса const boost::any C::operator[](const size_t i); но что если я хотел C::operator[](const size_t i) вернуть объект, удерживаемый any объект по индексу i а не…
18 фев '17 в 15:37
1 ответ

Boost:: любой подвижный?

Этот код компилируется, но я не думаю, что он делает то, что хотел, то есть перемещает, не копирует, boost::any объект, который был создан в стеке в std::vector&lt;boost::any&gt; boost::any var; var = std::string("Stackru"); std::vector&lt;boost::an…
10 авг '13 в 19:43
2 ответа

boost::any нарушает принцип подстановки Лискова

Я обнаружил, что невозможно извлечь ссылку на базовый тип из boost::any который содержит производный тип: boost::any holder = Derived(); const Base&amp; base_ref = boost::any_cast&lt;const Base&amp;&gt;(holder); бросает boost::bad_any_cast исключени…
17 июл '13 в 10:57
1 ответ

Как я могу увидеть значение boost::any, если я знаю тип с gdb

У меня есть дамп ядра, и я смотрю на дамп ядра с помощью gdb. Мне было интересно, если есть способ, чтобы иметь возможность проверить значение boost::any значение в GDB? В основном у меня был адрес для любого повышения, поэтому я попытался привести …
14 дек '12 в 20:42
1 ответ

Можно ли избежать накладных расходов при использовании boost_any?

Я хотел бы использовать boost::any как универсальный тип для хранения в контейнере и для перехода к различным функциям. Но внутри этих функций я всегда знаю реальный тип, поэтому во время выполнения мне не нужны никакие проверки безопасности типов и…
22 май '13 в 14:21
4 ответа

Стандарт C++11 обеспечивает что-то вроде boost::any?

Например boost::function почти полностью std::functionто же самое с boost::shared_ptr Но я не могу найти std::any? Был ли он переименован или вообще не был помещен в новый стандарт по какой-либо причине?
08 фев '12 в 14:19