xref: /llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/common.h (revision a13822b35d11cb6afa759fa0672fbc0b6ef295d0)
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