@@ -114,12 +114,11 @@ constexpr nonstd::expected<T, conversion_errc> convert_from_bvalue_string_impl(
114114 return nonstd::make_unexpected (conversion_errc::not_string_type);
115115
116116 auto & bstring = get_string (b);
117- try { return T (reinterpret_cast <std::byte *>(rng::data (bstring)),
118- reinterpret_cast <std::byte *>(rng::data (bstring)+rng::size (bstring))); }
117+ try { return T (reinterpret_cast <rng:: range_value_t <T> *>(rng::data (bstring)),
118+ reinterpret_cast <rng:: range_value_t <T> *>(rng::data (bstring)+rng::size (bstring))); }
119119 catch (...) { return nonstd::make_unexpected (conversion_errc::construction_error); }
120120}
121121
122-
123122// Conversion to list like types supporting front_inserter/back_inserter/inserter.
124123
125124template <typename T, typename U, typename Policy = typename std::remove_cvref_t <U>::policy_type>
@@ -200,26 +199,6 @@ constexpr nonstd::expected<T, conversion_errc> convert_from_bvalue_list_impl(
200199 return out;
201200}
202201
203- // conversion to std::span<const char> or std::span<const std::byte>
204-
205- template <typename Tp, basic_bvalue_instantiation BV, typename U = std::remove_cvref_t <BV>>
206- requires (std::same_as<Tp, const char > || std::same_as<Tp, const std::byte>)
207- && std::same_as<typename detail::policy_string_t <BV>::value_type, char >
208- constexpr nonstd::expected<std::span<const Tp>, conversion_errc> convert_from_bvalue_list_impl (
209- customization_point_type<std::span<const Tp>>,
210- BV&& b,
211- priority_tag<0 >) noexcept
212- {
213- if (!holds_string (b)) [[unlikely]]
214- return nonstd::make_unexpected (conversion_errc::not_list_type);
215-
216- const auto & s = get_string (b);
217- if constexpr (std::same_as<Tp, std::byte>) {
218- return std::span (reinterpret_cast <const std::byte*>(s.data ()), s.size ());
219- } else {
220- return std::span (s.data (), s.size ());
221- }
222- }
223202
224203// Dict conversion
225204
0 commit comments