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 #ifndef TEST_META_UNARY_COMP_COMMON_H 10 #define TEST_META_UNARY_COMP_COMMON_H 11 12 #include "test_macros.h" 13 14 #if TEST_STD_VER >= 11 15 struct TrivialNotNoexcept { 16 TrivialNotNoexcept() noexcept(false) = default; 17 TrivialNotNoexcept(const TrivialNotNoexcept&) noexcept(false) = default; 18 TrivialNotNoexcept(TrivialNotNoexcept&&) noexcept(false) = default; 19 TrivialNotNoexcept& operator=(const TrivialNotNoexcept&) noexcept(false) = default; 20 TrivialNotNoexcept& operator=(TrivialNotNoexcept&&) noexcept(false) = default; 21 }; 22 #endif 23 24 class Empty {}; 25 26 struct NotEmpty { 27 virtual ~NotEmpty(); 28 }; 29 30 union Union {}; 31 32 struct bit_zero { 33 int : 0; 34 }; 35 36 struct A { 37 A(); 38 A(const A&); 39 A& operator=(const A&); 40 }; 41 42 class Abstract 43 { 44 virtual ~Abstract() = 0; 45 }; 46 47 #endif // TEST_META_UNARY_COMP_COMMON_H 48