//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11, c++14, c++17 // template // concept floating_point = // see below #include #include #include "arithmetic.h" template constexpr bool CheckFloatingPointQualifiers() { constexpr bool result = std::floating_point; static_assert(std::floating_point == result); static_assert(std::floating_point == result); static_assert(std::floating_point == result); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); static_assert(!std::floating_point); return result; } // floating-point types static_assert(CheckFloatingPointQualifiers()); static_assert(CheckFloatingPointQualifiers()); static_assert(CheckFloatingPointQualifiers()); // types that aren't floating-point static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!std::floating_point); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers()); static_assert(!CheckFloatingPointQualifiers());