[libc++][NFC] Test span is nothrow trivially destructible
authorJoe Loser <joeloser93@gmail.com>
Tue, 7 Sep 2021 17:48:10 +0000 (13:48 -0400)
committerJoe Loser <joeloser93@gmail.com>
Tue, 7 Sep 2021 17:48:24 +0000 (13:48 -0400)
Add tests showing `span` is trivially_destructible and nothrow_destructible.
Note that we do not need to explicitly default the destructor in `span`.

Reviewed By: ldionne, Mordante, #libc

Differential Revision: https://reviews.llvm.org/D109286

libcxx/test/std/containers/views/span.cons/span.dtor.compile.pass.cpp [new file with mode: 0644]

diff --git a/libcxx/test/std/containers/views/span.cons/span.dtor.compile.pass.cpp b/libcxx/test/std/containers/views/span.cons/span.dtor.compile.pass.cpp
new file mode 100644 (file)
index 0000000..15cd7be
--- /dev/null
@@ -0,0 +1,26 @@
+//===------------------------------ span ---------------------------------===//
+//
+// 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
+
+// <span>
+
+// ~span() = default;
+
+#include <span>
+#include <type_traits>
+
+template <class T>
+constexpr void testDestructor() {
+  static_assert(std::is_nothrow_destructible_v<T>);
+  static_assert(std::is_trivially_destructible_v<T>);
+}
+
+void test() {
+  testDestructor<std::span<int, 1>>();
+  testDestructor<std::span<int>>();
+}