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

A Boost C++ library that provides a container that can represent uninitialized objects of arbitrary type, notably allowing easier definition of functions that might not have a value to return
3 ответа

Как отключить std:: экспериментальный:: необязательный?

С помощью Boost я могу создать дополнительный на месте: boost::optional<boost::asio::io_service::work> work = boost::in_place(boost::ref(io_service)); И отключите это с: work = boost::none; С поддержкой C++14 / эксперимента я могу вместо этого…
12 ноя '14 в 21:37
1 ответ

Wrap Boost:: Необязательно, используя Boost:: Python

Есть ли способ обернуть boost::optional<T> введите объект, чтобы выставить его через boost::python::class_ (позаимствованно из BOOST_PYTHON_MODULE) struct Foo { boost::optional<int> bar; }; BOOST_PYTHON_MODULE(module_name) { class_<Fo…
07 апр '16 в 19:48
2 ответа

Вызов функций с помощью std:: необязательных параметров

У меня есть функция, чья подпись: void func(std::optional<std::string> os = std::nullopt); (Я псевдоним std::experimental::optional до тех пор std::optional официально доступен.) Тем не менее, мне трудно назвать это чисто. Компилятор откажется…
2 ответа

Может ли неинициализированный конструктор std::option или boost::option генерировать?

Может ли быть объявлен любой из следующих методов шаблона noexcept? template <typename T> std::optional<T> foo(const T& value) // noexcept? { try { // code possibly returning a T or a std::nullopt } catch(...) { return std::nullopt; …
14 янв '16 в 20:55
2 ответа

C++ необязательный <> и отложенное создание некопируемого объекта

Смотрите ниже код, Вопрос в том, как я могу отложить создание объекта, который нельзя скопировать, используя опциональный<>. В примере я использую Boost:: Optional, хотя я верю, что теперь это тоже стандарт Std:: Option. Да, я мог бы использовать sc…
1 ответ

Неудачная попытка использовать boost:: необязательный

Я пытался использовать опцию boost необязательно для функции, которая могла бы возвращать объект или ноль, и я не могу понять это. Вот что у меня так далеко. Любые предложения о том, как решить эту проблему, будут оценены. class Myclass { public: in…
04 июн '13 в 02:36
0 ответов

Неоднозначная перегрузка nlohmann json для оператора =

Я получаю эту ошибку компиляции с помощью следующего кода #include &lt;iostream&gt; #include &lt;boost/optional.hpp&gt; #include "nlohmann_json.hpp" namespace nlohmann { template &lt;typename T&gt; struct adl_serializer&lt;boost::optional&lt;T&gt;&g…
15 июн '18 в 19:12
1 ответ

Косвенный член RAII: unique_ptr или необязательный?

Рассмотрим класс с членом, который не может быть сохранен напрямую, например, потому что у него нет конструктора по умолчанию, а у конструктора вложенного класса недостаточно информации для его создания: class Foo { public: Foo(){} // Default ctor p…
03 мар '16 в 07:16
2 ответа

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

Я пытаюсь использовать API, который похож на следующее: #include&lt;iostream&gt; #include&lt;boost/optional.hpp&gt; class Base { int id; public: int get_id() { return id; } }; class A : public Base { }; class B : public Base { }; class M { public: e…
09 июн '15 в 08:04
4 ответа

Как использовать std:: необязательный?

Я читаю документацию std::experimental::optional и у меня есть хорошее представление о том, что он делает, но я не понимаю, когда я должен его использовать или как я должен его использовать. На сайте пока нет примеров, что затрудняет мне понимание и…
31 май '13 в 15:35
2 ответа

Буст опционально распознает наследование?

class Base {}; class Derived : public Base {}; void func(boost::optional&lt;Base&gt;&amp;) {} int main () { boost::optional&lt;Derived&gt; x; func(x); } Примет ли func оба варианта: базовый и производный?
18 май '16 в 14:09
1 ответ

Использование std:: эксперимент:::: необязательно, давая ошибки компиляции

Я использую дополнительную функцию в первый раз, любая идея, что не так в этом коде, я хочу получить значение из кортежа, который хранится в retCode #include &lt;iostream&gt; #include &lt;experimental/optional&gt; std::experimental::optional&lt;std:…
02 июл '18 в 11:57
3 ответа

Синтаксическая ошибка C2143 при включении boost/option.hpp

Я застрял с ошибкой во время компиляции, которую я не могу понять. Я пытаюсь использовать boost::optional в моем коде, и как только я включу boost/optional.hpp Я не могу больше строить свой проект. Если я прокомментирую это включение, это сработает.…
2 ответа

Использование std::option<int> так же эффективно, как использование int?

У меня есть структура данных quad-/octree. Я храню дочерние индексы /ptrs ячейки в массиве. Каждая позиция в массиве представляет местоположение дочернего элемента относительно его родителя, например, в 2D: // _____________ // | | | // | 2 | 3 | // …
26 июн '13 в 15:27
1 ответ

Каково обоснование реализации boost::none_t?

Boost.Optional использует фиктивный тип, позволяющий создавать неинициализированные экземпляры boost::optional&lt;T&gt;, Этот тип называется none_tи экземпляр none для удобства уже определен в заголовке, что позволяет нам писать такой код: boost::o…
07 июн '12 в 15:11
0 ответов

bsoncxx::stdx:: необязательный и mongocxx::stdx:: необязательный

Есть ли разница между bsoncxx::stdx::optional а также mongocxx::stdx::optional в MongoDB C++ драйвер? Они оба наследуют boost::optional? Я не могу найти описания о них в документации по API драйвера MongoDB C++.
27 авг '18 в 03:20
3 ответа

Что такое повышение:: дополнительная эффективность?

У меня есть следующее: class Obj; typedef std::map&lt;string, string&gt; StrMap; std::map&lt;std::string, std::pair&lt;Obj, StrMap&gt; &gt; complexMap; Дело в том, что для некоторых записей в complexMap StrMap будет пустым, и я вообще не буду его ис…
25 июн '13 в 07:44
2 ответа

Как я могу вернуть массив символов с Boost:: необязательно

Я пытаюсь вернуть простой массив с Boost:: Необязательно boost::optional&lt;const char *&gt; foo () { char ar[100] = {}; return boost::make_optional(true, ar); } и я получил следующую ошибку: could not convert ‘boost::make_optional(bool, const T&amp…
29 авг '17 в 16:00
1 ответ

Безопасно ли использовать boost:: опционально в межпроцессной памяти?

Пожалуйста, рассмотрите следующую структуру: struct ThingThatWillGoInSharedMemory { boost::optional&lt;int&gt; opt_value; }; Я использую boost:: interprocess для создания общей области памяти. Насколько я понимаю, boost:: option заключался в том, чт…
28 ноя '13 в 16:53
3 ответа

Извлечение объекта из boost:: необязательный

Предположим, что метод возвращает что-то вроде этого boost::optional&lt;SomeClass&gt; SomeMethod() {...} Теперь предположим, что у меня есть что-то вроде этого boost::optional&lt;SomeClass&gt; val = SomeMethod(); Теперь мой вопрос, как я могу извлеч…
05 июн '13 в 19:57