- 
            Now boost::optionalis specialized for reference
            parameters. This way thesizeofof optional reference is that of a pointer, and a number of bugs is avoided.
- 
            Changed the implementation of boost::noneagain. Now it is a const object with internal linkage (as any other tag).
            This fixes Trac
            #11203.
- 
            For C++03 compilers, added 0-argument overload for member function emplace(),
            and therewith removed the dependency on<boost/utility/in_place_factory.hpp>.
- 
            Fixed Trac
            #11241.
          
- 
            boost::none_tis no longer convertible from
            literal0. This avoids a
            bug whereoptional<rational<int>>
            oi =
            0;would initialize an optional object with no contained value.
- 
            Improved the trick that prevents streaming out optionalwithout headeroptional_io.hppby using safe-bool idiom. This addresses Trac
            #10825.
- 
            IOStream operators are now mentioned in documentation.
          
- 
            Added a way to manually disable move semantics: just define macro BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES.
            This can be used to work around Trac
            #10399.
- 
            It is no longer possible to assign optional<U>tooptional<T>whenUis not assignable or convertible toT(Trac #11087).
- 
            Value accessors now work correctly on rvalues of optional<T&>(Trac
            #10839).
- 
            Git pull #9:
            "Supply <string>to fix C++03 compile error onlogic_error("...")".
- 
            Added support for rvalue references. Now optional<T>works with moveable but non-copyableT's,
- 
            Improved swap(now uses
            move operations),
- 
            Added function emplace(). This is the last of the requests from
            Trac #1841,
- 
            optionalis moveable,
            including conditionalnoexceptspecifications, which make itmove_if_noexcept-friendly,
- 
            Using explicit operator bool() on platforms that support it (Trac
            #4227) (breaking change),
          
- 
            Forward declaration of operator<<(ostream&, optional
            const&)to prevent inadvertent incorrect serialization of optional objects,
- 
            Removed deprecated function reset()from examples (Trac
            #9005),
- 
            Equality comparison with boost::nonedoes not require thatTbe EqualityComparable,
- 
            Optional rvalue references are explicitly disallowed,
          
- 
            Binding temporaries to optional references is explicitly disallowed (breaking
            change),
          
- 
            More ways to access the contained value, functions value(),value_or(),value_or_eval(),
- 
            Updated and reorganized documentation, added tutorial and quick guide
            sections.