xref: /llvm-project/libcxx/test/std/containers/sequences/vector.bool/reference/triviality.compile.pass.cpp (revision 5d2b8fa155a57cf863ec2e3e367c663431ee8c31)
1*5d2b8fa1SNikolas Klauser //===----------------------------------------------------------------------===//
2*5d2b8fa1SNikolas Klauser //
3*5d2b8fa1SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*5d2b8fa1SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
5*5d2b8fa1SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*5d2b8fa1SNikolas Klauser //
7*5d2b8fa1SNikolas Klauser //===----------------------------------------------------------------------===//
8*5d2b8fa1SNikolas Klauser 
9*5d2b8fa1SNikolas Klauser #include <type_traits>
10*5d2b8fa1SNikolas Klauser #include <vector>
11*5d2b8fa1SNikolas Klauser 
12*5d2b8fa1SNikolas Klauser #include "test_macros.h"
13*5d2b8fa1SNikolas Klauser 
14*5d2b8fa1SNikolas Klauser using Ref = std::vector<bool>::reference;
15*5d2b8fa1SNikolas Klauser 
16*5d2b8fa1SNikolas Klauser LIBCPP_STATIC_ASSERT(!std::is_trivially_constructible<Ref>::value, "");
17*5d2b8fa1SNikolas Klauser LIBCPP_STATIC_ASSERT(std::is_trivially_copy_constructible<Ref>::value, "");
18*5d2b8fa1SNikolas Klauser LIBCPP_STATIC_ASSERT(std::is_trivially_move_constructible<Ref>::value, "");
19*5d2b8fa1SNikolas Klauser LIBCPP_STATIC_ASSERT(!std::is_trivially_copy_assignable<Ref>::value, "");
20*5d2b8fa1SNikolas Klauser LIBCPP_STATIC_ASSERT(!std::is_trivially_move_assignable<Ref>::value, "");
21*5d2b8fa1SNikolas Klauser LIBCPP_STATIC_ASSERT(std::is_trivially_destructible<Ref>::value, "");
22