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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <array> 10 11 // class array 12 13 // constexpr bool empty() const noexcept; 14 15 #include <array> 16 #include <cassert> 17 18 #include "test_macros.h" 19 tests()20TEST_CONSTEXPR_CXX14 bool tests() 21 { 22 { 23 typedef std::array<int, 2> C; 24 C c = {}; 25 ASSERT_NOEXCEPT(c.empty()); 26 assert(!c.empty()); 27 } 28 { 29 typedef std::array<int, 0> C; 30 C c = {}; 31 ASSERT_NOEXCEPT(c.empty()); 32 assert(c.empty()); 33 } 34 35 return true; 36 } 37 main(int,char **)38int main(int, char**) 39 { 40 tests(); 41 #if TEST_STD_VER >= 14 42 static_assert(tests(), ""); 43 #endif 44 45 #if TEST_STD_VER >= 11 46 // Sanity check for constexpr in C++11 47 { 48 constexpr std::array<int, 3> array = {}; 49 static_assert(!array.empty(), ""); 50 } 51 #endif 52 53 return 0; 54 } 55