From 7a9c6c4a66530d62f22aaff87c1d83b7035db738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaigan=C3=A9sh=20Kumaran?= Date: Wed, 12 Jul 2023 21:10:00 +0530 Subject: [PATCH] Implicit conversion between std::span and winrt::array_view --- strings/base_array.h | 10 ++++++++++ strings/base_includes.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/strings/base_array.h b/strings/base_array.h index 9f20cf34e..e74104074 100644 --- a/strings/base_array.h +++ b/strings/base_array.h @@ -31,6 +31,16 @@ WINRT_EXPORT namespace winrt array_view(value.begin(), static_cast(value.size())) {} +#ifdef __cpp_lib_span + template + array_view(std::span span) : array_view(span.data(), static_cast(span.size())) {} + + operator std::span() const noexcept + { + return { m_data, m_size }; + } +#endif + template array_view(C(&value)[N]) noexcept : array_view(value, N) diff --git a/strings/base_includes.h b/strings/base_includes.h index 54edca841..ee22bc0aa 100644 --- a/strings/base_includes.h +++ b/strings/base_includes.h @@ -34,6 +34,10 @@ #include #endif +#ifdef __cpp_lib_span +#include +#endif + #ifdef __cpp_lib_format #include #endif