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
15struct 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
24class Empty {};
25
26struct NotEmpty {
27 virtual ~NotEmpty();
28};
29
30union Union {};
31
32struct bit_zero {
33 int : 0;
34};
35
36struct A {
37 A();
38 A(const A&);
39 A& operator=(const A&);
40};
41
42class Abstract
43{
44 virtual ~Abstract() = 0;
45};
46
47#endif // TEST_META_UNARY_COMP_COMMON_H
48

source code of libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/common.h