[libcxx-commits] [libcxx] r357139 - [libc++] Rename span's as_writeable_bytes to as_writable_bytes
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Mar 27 18:27:52 PDT 2019
Author: ldionne
Date: Wed Mar 27 18:27:52 2019
New Revision: 357139
URL: http://llvm.org/viewvc/llvm-project?rev=357139&view=rev
Log:
[libc++] Rename span's as_writeable_bytes to as_writable_bytes
Summary: The Standard says as_writable_bytes.
Reviewers: mclow.lists, EricWF
Subscribers: christof, jkorous, dexonsmith, libcxx-commits
Differential Revision: https://reviews.llvm.org/D59882
Added:
libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.fail.cpp
libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.pass.cpp
Removed:
libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp
libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp
Modified:
libcxx/trunk/include/span
Modified: libcxx/trunk/include/span
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/span?rev=357139&r1=357138&r2=357139&view=diff
==============================================================================
--- libcxx/trunk/include/span (original)
+++ libcxx/trunk/include/span Wed Mar 27 18:27:52 2019
@@ -339,7 +339,7 @@ public:
_LIBCPP_INLINE_VISIBILITY span<const byte, _Extent * sizeof(element_type)> __as_bytes() const noexcept
{ return {reinterpret_cast<const byte *>(data()), size_bytes()}; }
- _LIBCPP_INLINE_VISIBILITY span<byte, _Extent * sizeof(element_type)> __as_writeable_bytes() const noexcept
+ _LIBCPP_INLINE_VISIBILITY span<byte, _Extent * sizeof(element_type)> __as_writable_bytes() const noexcept
{ return {reinterpret_cast<byte *>(data()), size_bytes()}; }
private:
@@ -513,7 +513,7 @@ public:
_LIBCPP_INLINE_VISIBILITY span<const byte, dynamic_extent> __as_bytes() const noexcept
{ return {reinterpret_cast<const byte *>(data()), size_bytes()}; }
- _LIBCPP_INLINE_VISIBILITY span<byte, dynamic_extent> __as_writeable_bytes() const noexcept
+ _LIBCPP_INLINE_VISIBILITY span<byte, dynamic_extent> __as_writable_bytes() const noexcept
{ return {reinterpret_cast<byte *>(data()), size_bytes()}; }
private:
@@ -550,7 +550,7 @@ get(span<_Tp, _Size> __s) noexcept
}
-// as_bytes & as_writeable_bytes
+// as_bytes & as_writable_bytes
template <class _Tp, size_t _Extent>
_LIBCPP_INLINE_VISIBILITY
auto as_bytes(span<_Tp, _Extent> __s) noexcept
@@ -559,9 +559,9 @@ auto as_bytes(span<_Tp, _Extent> __s) no
template <class _Tp, size_t _Extent>
_LIBCPP_INLINE_VISIBILITY
-auto as_writeable_bytes(span<_Tp, _Extent> __s) noexcept
--> enable_if_t<!is_const_v<_Tp>, decltype(__s.__as_writeable_bytes())>
-{ return __s.__as_writeable_bytes(); }
+auto as_writable_bytes(span<_Tp, _Extent> __s) noexcept
+-> enable_if_t<!is_const_v<_Tp>, decltype(__s.__as_writable_bytes())>
+{ return __s.__as_writable_bytes(); }
template <class _Tp, size_t _Extent>
_LIBCPP_INLINE_VISIBILITY
Added: libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.fail.cpp?rev=357139&view=auto
==============================================================================
--- libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.fail.cpp (added)
+++ libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.fail.cpp Wed Mar 27 18:27:52 2019
@@ -0,0 +1,49 @@
+// -*- C++ -*-
+//===------------------------------ 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++98, c++03, c++11, c++14, c++17
+
+// <span>
+
+// template <class ElementType, size_t Extent>
+// span<byte,
+// Extent == dynamic_extent
+// ? dynamic_extent
+// : sizeof(ElementType) * Extent>
+// as_writable_bytes(span<ElementType, Extent> s) noexcept;
+
+
+#include <span>
+#include <cassert>
+#include <string>
+
+#include "test_macros.h"
+
+const int iArr2[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+
+struct A {};
+
+int main(int, char**)
+{
+ std::as_writable_bytes(std::span<const int>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const long>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const double>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const A>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const std::string>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+
+ std::as_writable_bytes(std::span<const int, 0>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const long, 0>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const double, 0>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const A, 0>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const std::string, (size_t)0>()); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+
+ std::as_writable_bytes(std::span<const int> (iArr2, 1)); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+ std::as_writable_bytes(std::span<const int, 1>(iArr2 + 5, 1)); // expected-error {{no matching function for call to 'as_writable_bytes'}}
+
+ return 0;
+}
Added: libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.pass.cpp?rev=357139&view=auto
==============================================================================
--- libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.pass.cpp (added)
+++ libcxx/trunk/test/std/containers/views/span.objectrep/as_writable_bytes.pass.cpp Wed Mar 27 18:27:52 2019
@@ -0,0 +1,79 @@
+// -*- C++ -*-
+//===------------------------------ 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++98, c++03, c++11, c++14, c++17
+
+// <span>
+
+// template <class ElementType, size_t Extent>
+// span<byte,
+// Extent == dynamic_extent
+// ? dynamic_extent
+// : sizeof(ElementType) * Extent>
+// as_writable_bytes(span<ElementType, Extent> s) noexcept;
+
+
+#include <span>
+#include <cassert>
+#include <string>
+
+#include "test_macros.h"
+
+template<typename Span>
+void testRuntimeSpan(Span sp)
+{
+ ASSERT_NOEXCEPT(std::as_writable_bytes(sp));
+
+ auto spBytes = std::as_writable_bytes(sp);
+ using SB = decltype(spBytes);
+ ASSERT_SAME_TYPE(std::byte, typename SB::element_type);
+
+ if (sp.extent == std::dynamic_extent)
+ assert(spBytes.extent == std::dynamic_extent);
+ else
+ assert(spBytes.extent == sizeof(typename Span::element_type) * sp.extent);
+
+ assert(static_cast<void*>(spBytes.data()) == static_cast<void*>(sp.data()));
+ assert(spBytes.size() == sp.size_bytes());
+}
+
+struct A{};
+int iArr2[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+
+int main(int, char**)
+{
+ testRuntimeSpan(std::span<int> ());
+ testRuntimeSpan(std::span<long> ());
+ testRuntimeSpan(std::span<double> ());
+ testRuntimeSpan(std::span<A> ());
+ testRuntimeSpan(std::span<std::string>());
+
+ testRuntimeSpan(std::span<int, 0> ());
+ testRuntimeSpan(std::span<long, 0> ());
+ testRuntimeSpan(std::span<double, 0> ());
+ testRuntimeSpan(std::span<A, 0> ());
+ testRuntimeSpan(std::span<std::string, 0>());
+
+ testRuntimeSpan(std::span<int>(iArr2, 1));
+ testRuntimeSpan(std::span<int>(iArr2, 2));
+ testRuntimeSpan(std::span<int>(iArr2, 3));
+ testRuntimeSpan(std::span<int>(iArr2, 4));
+ testRuntimeSpan(std::span<int>(iArr2, 5));
+
+ testRuntimeSpan(std::span<int, 1>(iArr2 + 5, 1));
+ testRuntimeSpan(std::span<int, 2>(iArr2 + 4, 2));
+ testRuntimeSpan(std::span<int, 3>(iArr2 + 3, 3));
+ testRuntimeSpan(std::span<int, 4>(iArr2 + 2, 4));
+ testRuntimeSpan(std::span<int, 5>(iArr2 + 1, 5));
+
+ std::string s;
+ testRuntimeSpan(std::span<std::string>(&s, (std::size_t) 0));
+ testRuntimeSpan(std::span<std::string>(&s, 1));
+
+ return 0;
+}
Removed: libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp?rev=357138&view=auto
==============================================================================
--- libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp (original)
+++ libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp (removed)
@@ -1,49 +0,0 @@
-// -*- C++ -*-
-//===------------------------------ 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++98, c++03, c++11, c++14, c++17
-
-// <span>
-
-// template <class ElementType, size_t Extent>
-// span<byte,
-// Extent == dynamic_extent
-// ? dynamic_extent
-// : sizeof(ElementType) * Extent>
-// as_writeable_bytes(span<ElementType, Extent> s) noexcept;
-
-
-#include <span>
-#include <cassert>
-#include <string>
-
-#include "test_macros.h"
-
-const int iArr2[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
-
-struct A {};
-
-int main(int, char**)
-{
- std::as_writeable_bytes(std::span<const int>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const long>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const double>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const A>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const std::string>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
-
- std::as_writeable_bytes(std::span<const int, 0>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const long, 0>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const double, 0>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const A, 0>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const std::string, (size_t)0>()); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
-
- std::as_writeable_bytes(std::span<const int> (iArr2, 1)); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
- std::as_writeable_bytes(std::span<const int, 1>(iArr2 + 5, 1)); // expected-error {{no matching function for call to 'as_writeable_bytes'}}
-
- return 0;
-}
Removed: libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp?rev=357138&view=auto
==============================================================================
--- libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp (original)
+++ libcxx/trunk/test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp (removed)
@@ -1,79 +0,0 @@
-// -*- C++ -*-
-//===------------------------------ 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++98, c++03, c++11, c++14, c++17
-
-// <span>
-
-// template <class ElementType, size_t Extent>
-// span<byte,
-// Extent == dynamic_extent
-// ? dynamic_extent
-// : sizeof(ElementType) * Extent>
-// as_writeable_bytes(span<ElementType, Extent> s) noexcept;
-
-
-#include <span>
-#include <cassert>
-#include <string>
-
-#include "test_macros.h"
-
-template<typename Span>
-void testRuntimeSpan(Span sp)
-{
- ASSERT_NOEXCEPT(std::as_writeable_bytes(sp));
-
- auto spBytes = std::as_writeable_bytes(sp);
- using SB = decltype(spBytes);
- ASSERT_SAME_TYPE(std::byte, typename SB::element_type);
-
- if (sp.extent == std::dynamic_extent)
- assert(spBytes.extent == std::dynamic_extent);
- else
- assert(spBytes.extent == sizeof(typename Span::element_type) * sp.extent);
-
- assert(static_cast<void*>(spBytes.data()) == static_cast<void*>(sp.data()));
- assert(spBytes.size() == sp.size_bytes());
-}
-
-struct A{};
-int iArr2[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
-
-int main(int, char**)
-{
- testRuntimeSpan(std::span<int> ());
- testRuntimeSpan(std::span<long> ());
- testRuntimeSpan(std::span<double> ());
- testRuntimeSpan(std::span<A> ());
- testRuntimeSpan(std::span<std::string>());
-
- testRuntimeSpan(std::span<int, 0> ());
- testRuntimeSpan(std::span<long, 0> ());
- testRuntimeSpan(std::span<double, 0> ());
- testRuntimeSpan(std::span<A, 0> ());
- testRuntimeSpan(std::span<std::string, 0>());
-
- testRuntimeSpan(std::span<int>(iArr2, 1));
- testRuntimeSpan(std::span<int>(iArr2, 2));
- testRuntimeSpan(std::span<int>(iArr2, 3));
- testRuntimeSpan(std::span<int>(iArr2, 4));
- testRuntimeSpan(std::span<int>(iArr2, 5));
-
- testRuntimeSpan(std::span<int, 1>(iArr2 + 5, 1));
- testRuntimeSpan(std::span<int, 2>(iArr2 + 4, 2));
- testRuntimeSpan(std::span<int, 3>(iArr2 + 3, 3));
- testRuntimeSpan(std::span<int, 4>(iArr2 + 2, 4));
- testRuntimeSpan(std::span<int, 5>(iArr2 + 1, 5));
-
- std::string s;
- testRuntimeSpan(std::span<std::string>(&s, (std::size_t) 0));
- testRuntimeSpan(std::span<std::string>(&s, 1));
-
- return 0;
-}
More information about the libcxx-commits
mailing list