//===----------------------------------------------------------------------===//
//
//                     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
}
