Теперь boost::факультативно специализирован для исходных параметров. Это касается нескольких вопросов:
размер факультативной ссылки - это указатель,
некоторые ошибки, связанные с копированием необязательных ссылок, исчезли,
все ошибки рабочего времени, вызванные неправильной ссылочной привязкой для некоторых компиляторов, теперь превращаются в ошибки компиляционного времени,
вы можете поменять необязательные ссылки: это как обменные указатели: теневые, лежащие в основе объекты не затронуты,
Сделал идеально-экспедитор SFINAE-дружественным, который фиксирует Trac #12002. Однако это работает только на новых платформах, которые правильно реализуют C++11 <type_traits>.
Для компиляторов C++03 добавлена 0-аргументная перегрузка для функции участника emplace(), и при этом устранена зависимость от <boost/utility/in_place_factory.hpp&;.
boost::none_t больше не конвертируется из литературного 0. Это позволяет избежать ошибки, когда Опционно<rational<int>oi=0; инициализирует необязательный объект без соответствующего значения.
Улучшен трюк, который предотвращает потоковую трансляцию Опционно без заголовка Option_io.hpp, используя безопасный-боловой идиом. Это адрес Трак #10825.
Операторы IOStream теперь упоминаются в документации.
Добавлен способ отключить семантику перемещения вручную: просто определите макро BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES. Это может быть использовано для работы около Trac #10399.
Невозможно больше назначить Опционно<>U> на <T>, когда U не присваивается или конвертируется T (Trac #1087).
В настоящее время учредители ценностей работают правильно на r values of Option<T&> (Trac #10839).