[libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr.

* https://wg21.link/P2166

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D106801
This commit is contained in:
Marek Kurdej
2021-07-27 16:16:21 +02:00
parent 5ea091a817
commit 775caa58fc
6 changed files with 66 additions and 7 deletions

View File

@@ -0,0 +1,20 @@
//===----------------------------------------------------------------------===//
//
// 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, c++11, c++14, c++17, c++20
// <string_view>
// basic_string_view(nullptr_t) = delete; // C++2b
#include <string_view>
#include <type_traits>
static_assert(!std::is_convertible_v<decltype(nullptr), std::string_view>);
static_assert(!std::is_constructible_v<std::string_view, decltype(nullptr)>);
static_assert(!std::is_assignable_v<std::string_view, decltype(nullptr)>);