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

Detailed Semantics - Optional References

Boost , Boost.Optional , Header <boost/optional/optional.hpp>

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

PrevUpHomeNext

space

Необязательно[править править код]T&>:Необязательно()Не является исключением.;

факультативный<T&>::факультативныйno_tне исключение;

  • Пост-условия:bool[*это==ложное;*этони к чему не относится.

space

шаблон<классR>факультативный<T& >:факультативныйфакультативныйR& &rбез исключения;

  • Постусловия:bool[*это==истинно;адрес[**==адресr].
  • Замечания:ЕслиRне является точкой отсчета lvalue, программа плохо сформирована. Этот конструктор не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.
  • Примечания:Этот конструктор объявляетсяявнымна компиляторах, которые неправильно связываются с конст-значениями интегральных типов. Подробнеесм. здесь.
  • Пример:;T&vref=;необязательно<&>optvref;opt==];[][][]

space

шаблон<классR>необязательныйT&>:необязательныйнеобязательныйboolcond,Rrбез исключения;

  • Эффекты:Инициализируетrefс выражениемcond?адресr:nullptr.
  • Постусловия:bool[*это==cond; Еслиbool[*330]адрес[330
  • Замечания:ЕслиRне является точкой отсчета lvalue, программа плохо сформирована. Этот конструктор не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.

space

факультативный<T&>::факультативныйфакультативныйconst&rhsбез исключения;

  • Эффекты:Инициализируетrefс выражениемrhsref.
  • Постусловия:bool[*это]==boolrhs.
  • Пример:[4

space

шаблон<класс>явныйнеобязательный&>:необязательныйнеобязательный<Uконст&rhsбез исключения;

  • Требует:является_конвертируемым<U&,T&>::значениеявляетсяистинным.
  • Эффекты:Инициализируетrefс выражениемrhsref.
  • Постусловия:bool[*это]==boolrhs.

space

необязательно<T&>::оператор=no_tбез исключения;

  • Эффекты:Назначенияrefс выражениемnullptr.
  • возвращается:это.
  • Постусловия:bool[*это]==ложно.

необязательно&необязательно<T&>::оператор=необязательноconst&rhsбез исключения;

  • Эффекты:Назначаетrefс выражениемrhsref.
  • возвращается:это.
  • Постусловия:bool[*это]==boolrhs.
  • Примечания:Это поведение называетсяперебиндинговой семантикой. См.здесьдля деталей.
  • Пример:a=1;intb=2;T&raa;rb=bфакультативный<933][93&>def;необязательно<int&>orara];необязательно<int&>rb;// связывает 'def' с 'b' через 'rb', завернутым в 'orb'&>orcrc];oraorc;// REBINDS ora to 'c' through 'rc'c=4

шаблон<класс>факультативный&факультативный>::оператор=факультативный<const&rhsбез исключения;

  • Требует:является_конвертируемым<U&,T&>::значениеявляетсяистинным.
  • Эффекты:Назначаетrefс выражениемrhsref.
  • возвращается:это.
  • Постусловия:bool[*это]==boolrhs.

space

шаблон<классR>факультативный&факультативный<T&>:оператор=Rrбез исключения;

  • Эффекты:Назначаетrefс выражениемr.
  • возвращается:это.
  • 1345bool[*это==истинно.
  • Замечания:ЕслиRне является ссылкой на lvalue, программа плохо сформирована. Эта функция не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.

space

voidoptional<T&>:EmplaceR&&rбез исключения;

  • Эффекты:Назначаетrefс выражениемr.
  • 1345bool[*это==истинно.
  • Замечания:ЕслиRне является ссылкой на lvalue, программа плохо сформирована. Эта функция не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.

space

T&необязательно<T&>::получитьconst;

T&необязательно<T&>::оператор*()const;

  • Требует:[*==.
  • Эффекты:Возвращение*ref.
  • Бросает:Ничего.
  • Пример:] [

space

T*необязательно<T&>:оператор->const;

  • Требует:[*==.
  • Эффекты:Возвращениеref.
  • Бросает:Ничего.

space

T&необязательно<T&>::значение[]const;

  • Эффекты:Эквивалентвозвратбол[*этот]?*вал:бросокBad_optional_access[].

space

шаблон<класс>&факультативный<&>::значение_or&&rconstбез исключения;

  • Эффекты:Эквивалентно, если[*этовозвращение**этоэто;другоевозвращениеr.
  • Замечания:ЕслиRне является ссылкой на lvalue, программа плохо сформирована.

space

шаблон<класс>T&факультативный<>:значение_orFfconst;

  • Эффекты:Эквивалентно, если[*это]возвращение**это;другоевозвращениеf[].
  • Замечания:Еслидеклотипf()]не является ссылкой на lvalue, программа плохо сформирована.

space

T*необязательно<T&>::get_ptrconstбез исключения;

  • Возвращается:ref.

space

опционально<T&>::операторбоол[]констбез исключения;

  • Возвращается:boolref.

space

необязательно<T&>::оператор![]противбез исключения;

  • Возвращается:!boolref.

space

недействительныйнеобязательный<T&>::сбросбез исключения;

  • Эффекты:Используйте*этот=вместо этого.
  • Замечания:Эта функция упразднена.

space

шаблон<классR>voidфакультативный<T&>:сбросR&&rбез исключения;

  • Эффекты:Эквивалентно*это=std::вперед<R>r.
  • Замечания:Эта функция упразднена.

space

booloptional<T&>::is_initialized[]constno except;

  • Эффекты:Эквивалентвозвратфурункула[*этого].
  • Замечания:Эта функция упразднена.

space

шаблон<классR>T&факультативный<T&>::get_value_orR&&rconstбез исключения;

  • Эффекты:Эквивалентвозвратзначение_илиstd::вперед<R>r;.
  • Замечания:Эта функция упразднена.

PrevUpHomeNext

Статья Detailed Semantics - Optional References раздела Boost.Optional Header <boost/optional/optional.hpp> может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Header <boost/optional/optional.hpp> ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:18:09/0.0093591213226318/0