brintos

brintos / llvm-project-archived public Read only

0
0
Text · 979 B · 684f18f Raw
39 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// constexpr explicit optional<T>::operator bool() const noexcept;13 14#include <optional>15#include <type_traits>16#include <cassert>17 18#include "test_macros.h"19 20int main(int, char**)21{22    using std::optional;23    {24        const optional<int> opt; ((void)opt);25        ASSERT_NOEXCEPT(bool(opt));26        static_assert(!std::is_convertible<optional<int>, bool>::value, "");27    }28    {29        constexpr optional<int> opt;30        static_assert(!opt, "");31    }32    {33        constexpr optional<int> opt(0);34        static_assert(opt, "");35    }36 37  return 0;38}39