Listing 2: mandatory stores data when the optimal_storage structure becomes mandatory.

template<typename Type>
struct mandatory
{
    typedef Type type;
    type data_;
    mandatory();
    mandatory(const type &other);
    mandatory(const mandatory &other);
    operator type &();
    operator const type &() const;
};