//===----------------------------------------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

// <optional>

// template <class T> constexpr bool operator>= (const optional<T>& x, const optional<T>& y);

#include <experimental/optional>

#if _LIBCPP_STD_VER > 11

using std::experimental::optional;

struct X
{
    int i_;

    constexpr X(int i) : i_(i) {}
};

constexpr bool operator < ( const X &lhs, const X &rhs )
    { return lhs.i_ < rhs.i_ ; }

#endif

int main()
{
#if _LIBCPP_STD_VER > 11
    {
    typedef optional<X> O;
    
    constexpr O o1;     // disengaged
    constexpr O o2;     // disengaged
    constexpr O o3{1};  // engaged
    constexpr O o4{2};  // engaged
    constexpr O o5{1};  // engaged
    
    static_assert (  (o1 >= o1), "" );
    static_assert (  (o1 >= o2), "" );
    static_assert ( !(o1 >= o3), "" );
    static_assert ( !(o1 >= o4), "" );
    static_assert ( !(o1 >= o5), "" );

    static_assert (  (o2 >= o1), "" );
    static_assert (  (o2 >= o2), "" );
    static_assert ( !(o2 >= o3), "" );
    static_assert ( !(o2 >= o4), "" );
    static_assert ( !(o2 >= o5), "" );

    static_assert (  (o3 >= o1), "" );
    static_assert (  (o3 >= o2), "" );
    static_assert (  (o3 >= o3), "" );
    static_assert ( !(o3 >= o4), "" );
    static_assert (  (o3 >= o5), "" );

    static_assert (  (o4 >= o1), "" );
    static_assert (  (o4 >= o2), "" );
    static_assert (  (o4 >= o3), "" );
    static_assert (  (o4 >= o4), "" );
    static_assert (  (o4 >= o5), "" );

    static_assert (  (o5 >= o1), "" );
    static_assert (  (o5 >= o2), "" );
    static_assert (  (o5 >= o3), "" );
    static_assert ( !(o5 >= o4), "" );
    static_assert (  (o5 >= o5), "" );
    }
#endif
}
