brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · d9f3507 Raw
43 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// UNSUPPORTED: c++03, c++11, c++1410// <optional>11 12// template <class T> constexpr bool operator>=(const optional<T>& x, nullopt_t) noexcept;13// template <class T> constexpr bool operator>=(nullopt_t, const optional<T>& x) noexcept;14 15#include <optional>16 17#include "test_macros.h"18 19int main(int, char**)20{21    using std::optional;22    using std::nullopt_t;23    using std::nullopt;24 25    {26    typedef int T;27    typedef optional<T> O;28 29    constexpr O o1;     // disengaged30    constexpr O o2{1};  // engaged31 32    static_assert (  (nullopt >= o1), "" );33    static_assert ( !(nullopt >= o2), "" );34    static_assert (  (o1 >= nullopt), "" );35    static_assert (  (o2 >= nullopt), "" );36 37    static_assert (noexcept(nullopt >= o1), "");38    static_assert (noexcept(o1 >= nullopt), "");39    }40 41  return 0;42}43