Замечания:ЕслиRне является точкой отсчета lvalue, программа плохо сформирована. Этот конструктор не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.
Примечания:Этот конструктор объявляетсяявнымна компиляторах, которые неправильно связываются с конст-значениями интегральных типов. Подробнеесм. здесь.
Замечания:ЕслиRне является точкой отсчета lvalue, программа плохо сформирована. Этот конструктор не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.
Примечания:Это поведение называетсяперебиндинговой семантикой. См.здесьдля деталей.
Пример: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
Замечания:ЕслиRне является ссылкой на lvalue, программа плохо сформирована. Эта функция не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.
voidoptional<T&>:EmplaceR&&rбез исключения;
Эффекты:Назначаетrefс выражениемr.
1345bool[*это==истинно.
Замечания:ЕслиRне является ссылкой на lvalue, программа плохо сформирована. Эта функция не участвует в разрешении перегрузки, еслираспад<R>является примеромповышения::необязательно.
Статья Detailed Semantics - Optional References раздела Boost.Optional Header <boost/optional/optional.hpp> может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.