xref: /llvm-project/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/common.h (revision a13822b35d11cb6afa759fa0672fbc0b6ef295d0)
1*a13822b3SNikolas Klauser //===----------------------------------------------------------------------===//
2*a13822b3SNikolas Klauser //
3*a13822b3SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*a13822b3SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
5*a13822b3SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*a13822b3SNikolas Klauser //
7*a13822b3SNikolas Klauser //===----------------------------------------------------------------------===//
8*a13822b3SNikolas Klauser 
9*a13822b3SNikolas Klauser #ifndef TEST_META_UNARY_COMP_COMMON_H
10*a13822b3SNikolas Klauser #define TEST_META_UNARY_COMP_COMMON_H
11*a13822b3SNikolas Klauser 
12*a13822b3SNikolas Klauser #include "test_macros.h"
13*a13822b3SNikolas Klauser 
14*a13822b3SNikolas Klauser #if TEST_STD_VER >= 11
15*a13822b3SNikolas Klauser struct TrivialNotNoexcept {
16*a13822b3SNikolas Klauser   TrivialNotNoexcept() noexcept(false)                                     = default;
17*a13822b3SNikolas Klauser   TrivialNotNoexcept(const TrivialNotNoexcept&) noexcept(false)            = default;
18*a13822b3SNikolas Klauser   TrivialNotNoexcept(TrivialNotNoexcept&&) noexcept(false)                 = default;
19*a13822b3SNikolas Klauser   TrivialNotNoexcept& operator=(const TrivialNotNoexcept&) noexcept(false) = default;
20*a13822b3SNikolas Klauser   TrivialNotNoexcept& operator=(TrivialNotNoexcept&&) noexcept(false)      = default;
21*a13822b3SNikolas Klauser };
22*a13822b3SNikolas Klauser #endif
23*a13822b3SNikolas Klauser 
24*a13822b3SNikolas Klauser class Empty {};
25*a13822b3SNikolas Klauser 
26*a13822b3SNikolas Klauser struct NotEmpty {
27*a13822b3SNikolas Klauser   virtual ~NotEmpty();
28*a13822b3SNikolas Klauser };
29*a13822b3SNikolas Klauser 
30*a13822b3SNikolas Klauser union Union {};
31*a13822b3SNikolas Klauser 
32*a13822b3SNikolas Klauser struct bit_zero {
33*a13822b3SNikolas Klauser   int : 0;
34*a13822b3SNikolas Klauser };
35*a13822b3SNikolas Klauser 
36*a13822b3SNikolas Klauser struct A {
37*a13822b3SNikolas Klauser   A();
38*a13822b3SNikolas Klauser   A(const A&);
39*a13822b3SNikolas Klauser   A& operator=(const A&);
40*a13822b3SNikolas Klauser };
41*a13822b3SNikolas Klauser 
42*a13822b3SNikolas Klauser class Abstract
43*a13822b3SNikolas Klauser {
44*a13822b3SNikolas Klauser     virtual ~Abstract() = 0;
45*a13822b3SNikolas Klauser };
46*a13822b3SNikolas Klauser 
47*a13822b3SNikolas Klauser #endif // TEST_META_UNARY_COMP_COMMON_H
48