Nikolas Klauser 189d1853e4
[libc++] Add an initial modulemap for the test support headers (#162800)
This should improve the time it takes to run the test suite a bit. Right
now there are only a handful of headers in the modulemap because we're
missing a lot of includes in the tests. New headers should be added
there from the start, and we should fill up the modulemap over time
until it contains all the test support headers.
2025-11-13 08:28:48 +00:00

54 lines
1.4 KiB
C++

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03
// <vector>
// vector<bool>()
// noexcept(is_nothrow_default_constructible<allocator_type>::value);
// This tests a conforming extension
// For vector<>, this was added to the standard by N4258,
// but vector<bool> was not changed.
#include <cassert>
#include <vector>
#include <type_traits>
#include "test_macros.h"
#include "test_allocator.h"
template <class T>
struct some_alloc {
typedef T value_type;
some_alloc(const some_alloc&);
};
int main(int, char**) {
#if defined(_LIBCPP_VERSION)
{
typedef std::vector<bool> C;
static_assert(std::is_nothrow_default_constructible<C>::value, "");
}
{
typedef std::vector<bool, test_allocator<bool>> C;
static_assert(std::is_nothrow_default_constructible<C>::value, "");
}
{
typedef std::vector<bool, other_allocator<bool>> C;
static_assert(!std::is_nothrow_default_constructible<C>::value, "");
}
{
typedef std::vector<bool, some_alloc<bool>> C;
static_assert(!std::is_nothrow_default_constructible<C>::value, "");
}
#endif // _LIBCPP_VERSION
return 0;
}