//===----------------------------------------------------------------------===// // // 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++98, c++03, c++11, c++14, c++17 // type_traits // is_unbounded_array // T is an array type of unknown bound ([dcl.array]) #include #include "test_macros.h" template void test_array_imp() { static_assert( B == std::is_unbounded_array::value, "" ); static_assert( B == std::is_unbounded_array_v, "" ); } template void test_array() { test_array_imp(); test_array_imp(); test_array_imp(); test_array_imp(); } typedef char array[3]; typedef char incomplete_array[]; class incomplete_type; class Empty {}; union Union {}; class Abstract { virtual ~Abstract() = 0; }; enum Enum {zero, one}; typedef void (*FunctionPtr)(); int main(int, char**) { // Non-array types test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); test_array(); // Array types test_array(); test_array(); test_array(); return 0; }