mirror of
https://github.com/microsoft/GSL.git
synced 2024-11-28 18:41:57 -05:00
ran clang-format over string_span
This commit is contained in:
parent
a64c489c78
commit
7721de88f3
@ -19,14 +19,14 @@
|
|||||||
|
|
||||||
#include <gsl/gsl_assert> // for Ensures, Expects
|
#include <gsl/gsl_assert> // for Ensures, Expects
|
||||||
#include <gsl/gsl_util> // for narrow_cast
|
#include <gsl/gsl_util> // for narrow_cast
|
||||||
#include <gsl/span_ext> // for operator!=, operator==, dynamic_extent
|
#include <gsl/span_ext> // for operator!=, operator==, dynamic_extent
|
||||||
|
|
||||||
#include <algorithm> // for equal, lexicographical_compare
|
#include <algorithm> // for equal, lexicographical_compare
|
||||||
#include <array> // for array
|
#include <array> // for array
|
||||||
#include <cstddef> // for size_t, nullptr_t
|
#include <cstddef> // for size_t, nullptr_t
|
||||||
#include <cstdint> // for PTRDIFF_MAX
|
#include <cstdint> // for PTRDIFF_MAX
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string> // for basic_string, allocator, char_traits
|
#include <string> // for basic_string, allocator, char_traits
|
||||||
#include <type_traits> // for declval, is_convertible, enable_if_t, add_...
|
#include <type_traits> // for declval, is_convertible, enable_if_t, add_...
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(__clang__)
|
#if defined(_MSC_VER) && !defined(__clang__)
|
||||||
@ -36,7 +36,7 @@
|
|||||||
#pragma warning(disable : 26446) // TODO: bug in parser - attributes and templates
|
#pragma warning(disable : 26446) // TODO: bug in parser - attributes and templates
|
||||||
#pragma warning(disable : 26481) // TODO: suppress does not work inside templates sometimes
|
#pragma warning(disable : 26481) // TODO: suppress does not work inside templates sometimes
|
||||||
#pragma warning(disable : 4996) // use of functions & classes marked [[deprecated]]
|
#pragma warning(disable : 4996) // use of functions & classes marked [[deprecated]]
|
||||||
#endif // _MSC_VER
|
#endif // _MSC_VER
|
||||||
|
|
||||||
#if defined(__GNUC__) || defined(__clang__)
|
#if defined(__GNUC__) || defined(__clang__)
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
@ -57,36 +57,55 @@ namespace gsl
|
|||||||
//
|
//
|
||||||
|
|
||||||
template <typename CharT, std::size_t Extent = dynamic_extent>
|
template <typename CharT, std::size_t Extent = dynamic_extent>
|
||||||
using basic_zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = CharT*;
|
using basic_zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] = CharT*;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using czstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<const char, Extent>;
|
using czstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<const char, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cwzstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<const wchar_t, Extent>;
|
using cwzstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<const wchar_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cu16zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<const char16_t, Extent>;
|
using cu16zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<const char16_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cu32zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<const char32_t, Extent>;
|
using cu32zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<const char32_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<char, Extent>;
|
using zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<char, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using wzstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<wchar_t, Extent>;
|
using wzstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<wchar_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using u16zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<char16_t, Extent>;
|
using u16zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<char16_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using u32zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring<char32_t, Extent>;
|
using u32zstring [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring<char32_t, Extent>;
|
||||||
|
|
||||||
namespace details
|
namespace details
|
||||||
{
|
{
|
||||||
template <class CharT>
|
template <class CharT>
|
||||||
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] constexpr std::size_t string_length(const CharT* str, std::size_t n)
|
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see "
|
||||||
|
"isocpp/CppCoreGuidelines PR#1680")]] constexpr std::size_t
|
||||||
|
string_length(const CharT* str, std::size_t n)
|
||||||
{
|
{
|
||||||
if (str == nullptr || n == dynamic_extent) return 0;
|
if (str == nullptr || n == dynamic_extent) return 0;
|
||||||
|
|
||||||
@ -108,29 +127,31 @@ namespace details
|
|||||||
// Will fail-fast if sentinel cannot be found before max elements are examined.
|
// Will fail-fast if sentinel cannot be found before max elements are examined.
|
||||||
//
|
//
|
||||||
template <typename T, const T Sentinel>
|
template <typename T, const T Sentinel>
|
||||||
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]]constexpr span<T, dynamic_extent> ensure_sentinel(T* seq,
|
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see "
|
||||||
std::size_t max = static_cast<std::size_t>(-1))
|
"isocpp/CppCoreGuidelines PR#1680")]] constexpr span<T, dynamic_extent>
|
||||||
|
ensure_sentinel(T* seq, std::size_t max = static_cast<std::size_t>(-1))
|
||||||
{
|
{
|
||||||
Ensures(seq != nullptr);
|
Ensures(seq != nullptr);
|
||||||
|
|
||||||
GSL_SUPPRESS(
|
GSL_SUPPRESS(
|
||||||
f.23) // NO-FORMAT: attribute // TODO: false positive // TODO: suppress does not work
|
f .23) // NO-FORMAT: attribute // TODO: false positive // TODO: suppress does not work
|
||||||
auto cur = seq;
|
auto cur = seq;
|
||||||
Ensures(cur != nullptr); // workaround for removing the warning
|
Ensures(cur != nullptr); // workaround for removing the warning
|
||||||
|
|
||||||
GSL_SUPPRESS(bounds.1) // NO-FORMAT: attribute // TODO: suppress does not work
|
GSL_SUPPRESS(bounds .1) // NO-FORMAT: attribute // TODO: suppress does not work
|
||||||
while (static_cast<std::size_t>(cur - seq) < max && *cur != Sentinel) ++cur;
|
while (static_cast<std::size_t>(cur - seq) < max && *cur != Sentinel) ++cur;
|
||||||
Ensures(*cur == Sentinel);
|
Ensures(*cur == Sentinel);
|
||||||
return {seq, static_cast<std::size_t>(cur - seq)};
|
return {seq, static_cast<std::size_t>(cur - seq)};
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// ensure_z - creates a span for a zero terminated strings. The span will not contain the zero termination.
|
// ensure_z - creates a span for a zero terminated strings. The span will not contain the zero
|
||||||
// Will fail fast if a null-terminator cannot be found before the limit of size_type.
|
// termination. Will fail fast if a null-terminator cannot be found before the limit of size_type.
|
||||||
//
|
//
|
||||||
template <typename CharT>
|
template <typename CharT>
|
||||||
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] constexpr span<CharT, dynamic_extent> ensure_z(CharT* const& sz,
|
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see "
|
||||||
std::size_t max = static_cast<std::size_t>(-1))
|
"isocpp/CppCoreGuidelines PR#1680")]] constexpr span<CharT, dynamic_extent>
|
||||||
|
ensure_z(CharT* const& sz, std::size_t max = static_cast<std::size_t>(-1))
|
||||||
{
|
{
|
||||||
return ensure_sentinel<CharT, CharT(0)>(sz, max);
|
return ensure_sentinel<CharT, CharT(0)>(sz, max);
|
||||||
}
|
}
|
||||||
@ -142,37 +163,45 @@ constexpr span<CharT, dynamic_extent> ensure_z(CharT (&sz)[N])
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class Cont>
|
template <class Cont>
|
||||||
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] constexpr span<typename std::remove_pointer<typename Cont::pointer>::type, dynamic_extent> ensure_z(Cont& cont)
|
[[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see "
|
||||||
|
"isocpp/CppCoreGuidelines PR#1680")]] constexpr span<
|
||||||
|
typename std::remove_pointer<typename Cont::pointer>::type, dynamic_extent>
|
||||||
|
ensure_z(Cont& cont)
|
||||||
{
|
{
|
||||||
return ensure_z(cont.data(), cont.size());
|
return ensure_z(cont.data(), cont.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename CharT, std::size_t>
|
template <typename CharT, std::size_t>
|
||||||
class [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] basic_string_span;
|
class [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, "
|
||||||
|
"see isocpp/CppCoreGuidelines PR#1680")]] basic_string_span;
|
||||||
|
|
||||||
namespace details
|
namespace details
|
||||||
{
|
{
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] is_basic_string_span_oracle : std::false_type
|
struct [
|
||||||
{
|
[deprecated("string_span was removed from the C++ Core Guidelines. For more information, "
|
||||||
};
|
"see isocpp/CppCoreGuidelines PR#1680")]] is_basic_string_span_oracle
|
||||||
|
: std::false_type{};
|
||||||
|
|
||||||
template <typename CharT, std::size_t Extent>
|
template <typename CharT, std::size_t Extent>
|
||||||
struct [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] is_basic_string_span_oracle<basic_string_span<CharT, Extent>> : std::true_type
|
struct [[deprecated(
|
||||||
{
|
"string_span was removed from the C++ Core Guidelines. For more information, see "
|
||||||
};
|
"isocpp/CppCoreGuidelines PR#1680")]] is_basic_string_span_oracle<basic_string_span<CharT,
|
||||||
|
Extent>>
|
||||||
|
: std::true_type{};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] is_basic_string_span : is_basic_string_span_oracle<std::remove_cv_t<T>>
|
struct [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
{
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] is_basic_string_span
|
||||||
};
|
: is_basic_string_span_oracle<std::remove_cv_t<T>>{};
|
||||||
} // namespace details
|
} // namespace details
|
||||||
|
|
||||||
//
|
//
|
||||||
// string_span and relatives
|
// string_span and relatives
|
||||||
//
|
//
|
||||||
template <typename CharT, std::size_t Extent = dynamic_extent>
|
template <typename CharT, std::size_t Extent = dynamic_extent>
|
||||||
class [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] basic_string_span
|
class [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, "
|
||||||
|
"see isocpp/CppCoreGuidelines PR#1680")]] basic_string_span
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using element_type = CharT;
|
using element_type = CharT;
|
||||||
@ -201,11 +230,11 @@ public:
|
|||||||
// From static arrays - if 0-terminated, remove 0 from the view
|
// From static arrays - if 0-terminated, remove 0 from the view
|
||||||
// All other containers allow 0s within the length, so we do not remove them
|
// All other containers allow 0s within the length, so we do not remove them
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
constexpr basic_string_span(element_type (&arr)[N]) : span_(remove_z(arr))
|
constexpr basic_string_span(element_type(&arr)[N]) : span_(remove_z(arr))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <std::size_t N, class ArrayElementType = std::remove_const_t<element_type>>
|
template <std::size_t N, class ArrayElementType = std::remove_const_t<element_type>>
|
||||||
constexpr basic_string_span(std::array<ArrayElementType, N>& arr) noexcept : span_(arr)
|
constexpr basic_string_span(std::array<ArrayElementType, N> & arr) noexcept : span_(arr)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <std::size_t N, class ArrayElementType = std::remove_const_t<element_type>>
|
template <std::size_t N, class ArrayElementType = std::remove_const_t<element_type>>
|
||||||
@ -215,7 +244,7 @@ public:
|
|||||||
// Container signature should work for basic_string after C++17 version exists
|
// Container signature should work for basic_string after C++17 version exists
|
||||||
template <class Traits, class Allocator>
|
template <class Traits, class Allocator>
|
||||||
// GSL_SUPPRESS(bounds.4) // NO-FORMAT: attribute // TODO: parser bug
|
// GSL_SUPPRESS(bounds.4) // NO-FORMAT: attribute // TODO: parser bug
|
||||||
constexpr basic_string_span(std::basic_string<element_type, Traits, Allocator>& str)
|
constexpr basic_string_span(std::basic_string<element_type, Traits, Allocator> & str)
|
||||||
: span_(&str[0], str.length())
|
: span_(&str[0], str.length())
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -231,7 +260,7 @@ public:
|
|||||||
std::is_convertible<typename Container::pointer, pointer>::value &&
|
std::is_convertible<typename Container::pointer, pointer>::value &&
|
||||||
std::is_convertible<typename Container::pointer,
|
std::is_convertible<typename Container::pointer,
|
||||||
decltype(std::declval<Container>().data())>::value>>
|
decltype(std::declval<Container>().data())>::value>>
|
||||||
constexpr basic_string_span(Container& cont) : span_(cont)
|
constexpr basic_string_span(Container & cont) : span_(cont)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
template <class Container,
|
template <class Container,
|
||||||
@ -280,8 +309,8 @@ public:
|
|||||||
return {span_.template subspan<Offset, Count>()};
|
return {span_.template subspan<Offset, Count>()};
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr basic_string_span<element_type, dynamic_extent>
|
constexpr basic_string_span<element_type, dynamic_extent> subspan(
|
||||||
subspan(size_type offset, size_type count = dynamic_extent) const
|
size_type offset, size_type count = dynamic_extent) const
|
||||||
{
|
{
|
||||||
return {span_.subspan(offset, count)};
|
return {span_.subspan(offset, count)};
|
||||||
}
|
}
|
||||||
@ -310,7 +339,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
static constexpr impl_type remove_z(element_type (&sz)[N])
|
static constexpr impl_type remove_z(element_type(&sz)[N])
|
||||||
{
|
{
|
||||||
return remove_z(&sz[0], N);
|
return remove_z(&sz[0], N);
|
||||||
}
|
}
|
||||||
@ -319,28 +348,44 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<char, Extent>;
|
using string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<char, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<const char, Extent>;
|
using cstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<const char, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using wstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<wchar_t, Extent>;
|
using wstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<wchar_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cwstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<const wchar_t, Extent>;
|
using cwstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<const wchar_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using u16string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<char16_t, Extent>;
|
using u16string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<char16_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cu16string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<const char16_t, Extent>;
|
using cu16string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<const char16_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using u32string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<char32_t, Extent>;
|
using u32string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<char32_t, Extent>;
|
||||||
|
|
||||||
template <std::size_t Extent = dynamic_extent>
|
template <std::size_t Extent = dynamic_extent>
|
||||||
using cu32string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_string_span<const char32_t, Extent>;
|
using cu32string_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_string_span<const char32_t, Extent>;
|
||||||
|
|
||||||
//
|
//
|
||||||
// to_string() allow (explicit) conversions from string_span to string
|
// to_string() allow (explicit) conversions from string_span to string
|
||||||
@ -365,7 +410,7 @@ template <class ElementType, std::size_t Extent>
|
|||||||
constexpr basic_string_span<const byte, details::calculate_byte_size<ElementType, Extent>::value>
|
constexpr basic_string_span<const byte, details::calculate_byte_size<ElementType, Extent>::value>
|
||||||
as_bytes(basic_string_span<ElementType, Extent> s) noexcept
|
as_bytes(basic_string_span<ElementType, Extent> s) noexcept
|
||||||
{
|
{
|
||||||
GSL_SUPPRESS(type.1) // NO-FORMAT: attribute
|
GSL_SUPPRESS(type .1) // NO-FORMAT: attribute
|
||||||
return {reinterpret_cast<const byte*>(s.data()), s.size_bytes()};
|
return {reinterpret_cast<const byte*>(s.data()), s.size_bytes()};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -374,14 +419,15 @@ template <class ElementType, std::size_t Extent,
|
|||||||
constexpr basic_string_span<byte, details::calculate_byte_size<ElementType, Extent>::value>
|
constexpr basic_string_span<byte, details::calculate_byte_size<ElementType, Extent>::value>
|
||||||
as_writable_bytes(basic_string_span<ElementType, Extent> s) noexcept
|
as_writable_bytes(basic_string_span<ElementType, Extent> s) noexcept
|
||||||
{
|
{
|
||||||
GSL_SUPPRESS(type.1) // NO-FORMAT: attribute
|
GSL_SUPPRESS(type .1) // NO-FORMAT: attribute
|
||||||
return {reinterpret_cast<byte*>(s.data()), s.size_bytes()};
|
return {reinterpret_cast<byte*>(s.data()), s.size_bytes()};
|
||||||
}
|
}
|
||||||
|
|
||||||
// zero-terminated string span, used to convert
|
// zero-terminated string span, used to convert
|
||||||
// zero-terminated spans to legacy strings
|
// zero-terminated spans to legacy strings
|
||||||
template <typename CharT, std::size_t Extent = dynamic_extent>
|
template <typename CharT, std::size_t Extent = dynamic_extent>
|
||||||
class [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] basic_zstring_span
|
class [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, "
|
||||||
|
"see isocpp/CppCoreGuidelines PR#1680")]] basic_zstring_span
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using value_type = CharT;
|
using value_type = CharT;
|
||||||
@ -407,7 +453,7 @@ public:
|
|||||||
constexpr basic_zstring_span(const basic_zstring_span& other) = default;
|
constexpr basic_zstring_span(const basic_zstring_span& other) = default;
|
||||||
|
|
||||||
// move
|
// move
|
||||||
constexpr basic_zstring_span(basic_zstring_span&& other) = default;
|
constexpr basic_zstring_span(basic_zstring_span && other) = default;
|
||||||
|
|
||||||
// assign
|
// assign
|
||||||
constexpr basic_zstring_span& operator=(const basic_zstring_span& other) = default;
|
constexpr basic_zstring_span& operator=(const basic_zstring_span& other) = default;
|
||||||
@ -430,28 +476,44 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<char, Max>;
|
using zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<char, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using wzstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<wchar_t, Max>;
|
using wzstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<wchar_t, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using u16zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<char16_t, Max>;
|
using u16zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<char16_t, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using u32zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<char32_t, Max>;
|
using u32zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<char32_t, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using czstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<const char, Max>;
|
using czstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<const char, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using cwzstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<const wchar_t, Max>;
|
using cwzstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more "
|
||||||
|
"information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<const wchar_t, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using cu16zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<const char16_t, Max>;
|
using cu16zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For "
|
||||||
|
"more information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<const char16_t, Max>;
|
||||||
|
|
||||||
template <std::size_t Max = dynamic_extent>
|
template <std::size_t Max = dynamic_extent>
|
||||||
using cu32zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For more information, see isocpp/CppCoreGuidelines PR#1680")]] = basic_zstring_span<const char32_t, Max>;
|
using cu32zstring_span [[deprecated("string_span was removed from the C++ Core Guidelines. For "
|
||||||
|
"more information, see isocpp/CppCoreGuidelines PR#1680")]] =
|
||||||
|
basic_zstring_span<const char32_t, Max>;
|
||||||
|
|
||||||
// operator ==
|
// operator ==
|
||||||
template <class CharT, std::size_t Extent, class T,
|
template <class CharT, std::size_t Extent, class T,
|
||||||
|
Loading…
Reference in New Issue
Block a user