Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Optional

Boost , Boost.Optional ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Next

Boost.Optional

Fernando Luis Cacciola Carballal

Распространяется под лицензией Boost Software License, версия 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию по адресуhttp://www.boost.org/LICENSE_1_0.txt)

Шаблон класса<optional>является оберткой для представления «необязательных» (или «отменяемых») объектов, которые не могут (пока) содержать действительное значение. Факультативные объекты предлагают семантику полной стоимости; они хороши для передачи ценности и использования внутри контейнеров STL. Это библиотека только для заголовков.

Problem

Предположим, что мы хотим прочитать параметр в виде файла конфигурации, который представляет собой некоторое интегральное значение, назовем его<"MaxValue">. Возможно, этот параметр не указан; такая ситуация не является ошибкой. Действительно не указывать параметр и в этом случае программа должна вести себя несколько иначе. Кроме того, предположим, что любое возможное значение типа<int>является действительным значением для<"MaxValue">, поэтому мы не можем просто использовать<-1>для представления отсутствия параметра в файле конфигурации.

Solution

Вот как это делается<boost::optional>:

#include <boost/optional.hpp>
boost::optional<int> getConfigParam(std::string name);  // return either an int or a `not-an-int`
int main()
{
  if (boost::optional<int> oi = getConfigParam("MaxValue")) // did I get a real int?
    runWithMax(*oi);                                        // use my int
  else
    runWithNoMax();
}

Последний пересмотр: 21 сентября 2016 года в 14:56:55 GMT


Next

Статья Boost.Optional раздела Boost.Optional может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 16:46:40/0.027709007263184/1