//===----------------------------------------------------------------------===//
//
//                     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 T& v);
// template <class T> constexpr bool operator==(const T& v, const optional<T>& x);

#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 X T;
    typedef optional<T> O;
    
    constexpr T val(2);
    constexpr O o1;       // disengaged
    constexpr O o2{1};    // engaged
    constexpr O o3{val};  // engaged

    static_assert ( !(o1 == T(1)), "" );
    static_assert (  (o2 == T(1)), "" );
    static_assert ( !(o3 == T(1)), "" );
    static_assert (  (o3 == T(2)), "" );
    static_assert (  (o3 == val),  "" );
        
    static_assert ( !(T(1) == o1), "" );
    static_assert (  (T(1) == o2), "" );
    static_assert ( !(T(1) == o3), "" );
    static_assert (  (T(2) == o3), "" );
    static_assert (  (val  == o3), "" );
    }
#endif
}
