13#ifndef RANGES_V3_VIEW_C_STR_HPP
14#define RANGES_V3_VIEW_C_STR_HPP
21#include <range/v3/utility/static_const.hpp>
25#include <range/v3/detail/prologue.hpp>
33 struct is_char_type_ : std::false_type
37 struct is_char_type_<char> : std::true_type
41 struct is_char_type_<wchar_t> : std::true_type
45 struct is_char_type_<char16_t> : std::true_type
49 struct is_char_type_<char32_t> : std::true_type
53 using is_char_type = is_char_type_<meta::_t<std::remove_cv<T>>>;
67 requires detail::is_char_type<Char>::value)
70 return {&sz[0], &sz[N - 1]};
74 template(
typename Char)(
75 requires detail::is_char_type<Char>::value)
79 operator()(Char * sz)
const volatile
82 return ranges::views::delimit(sz, ch_t(0));
92#include <range/v3/detail/epilogue.hpp>
RANGES_INLINE_VARIABLE(detail::to_container_fn< detail::from_range< std::vector > >, to_vector) template< template< typename... > class ContT > auto to(RANGES_HIDDEN_DETAIL(detail
For initializing a container of the specified type with the elements of an Range.
Definition: conversion.hpp:399
std::integral_constant< std::size_t, N > size_t
An integral constant wrapper for std::size_t.
Definition: meta.hpp:163
typename T::type _t
Type alias for T::type.
Definition: meta.hpp:141
Definition: delimit.hpp:41
Definition: subrange.hpp:196
View a \0-terminated C string (e.g.
Definition: c_str.hpp:64