Go to the documentation of this file.
4 #ifndef XGBOOST_STRING_VIEW_H_
5 #define XGBOOST_STRING_VIEW_H_
6 #include <xgboost/logging.h>
17 using Traits = std::char_traits<CharT>;
18 CharT
const* str_{
nullptr};
30 explicit StringView(std::string
const& str) : str_{str.c_str()}, size_{str.size()} {}
31 StringView(CharT
const* str) : str_{str}, size_{Traits::length(str)} {}
33 CharT
const&
operator[](
size_t p)
const {
return str_[p]; }
34 CharT
const&
at(
size_t p)
const {
38 constexpr
size_t size()
const {
return size_; }
41 size_t len = std::min(n, size_ - beg);
42 return {str_ + beg, len};
44 CharT
const*
c_str()
const {
return str_; }
46 constexpr CharT
const*
cbegin()
const {
return str_; }
47 constexpr CharT
const*
cend()
const {
return str_ +
size(); }
48 constexpr CharT
const*
begin()
const {
return str_; }
49 constexpr CharT
const*
end()
const {
return str_ +
size(); }
81 #endif // XGBOOST_STRING_VIEW_H_
constexpr CharT const * cend() const
Definition: string_view.h:47
constexpr CharT const * end() const
Definition: string_view.h:49
iterator const_iterator
Definition: string_view.h:23
CharT const & operator[](size_t p) const
Definition: string_view.h:33
constexpr size_t size() const
Definition: string_view.h:38
Definition: string_view.h:14
StringView(CharT const *str)
Definition: string_view.h:31
std::reverse_iterator< const_iterator > reverse_iterator
Definition: string_view.h:24
std::basic_ostream< E, T > & operator<<(std::basic_ostream< E, T > &os, IntrusivePtr< Y > const &p)
Definition: intrusive_ptr.h:200
const CharT * iterator
Definition: string_view.h:22
reverse_iterator const_reverse_iterator
Definition: string_view.h:25
const_reverse_iterator crbegin() const noexcept
Definition: string_view.h:54
CharT const & at(size_t p) const
Definition: string_view.h:34
bool operator!=(IntrusivePtr< T > const &x, IntrusivePtr< U > const &y) noexcept
Definition: intrusive_ptr.h:155
constexpr CharT const * begin() const
Definition: string_view.h:48
const_reverse_iterator rbegin() const noexcept
Definition: string_view.h:51
StringView substr(size_t beg, size_t n) const
Definition: string_view.h:39
constexpr StringView()=default
const_reverse_iterator crend() const noexcept
Definition: string_view.h:60
CharT const * c_str() const
Definition: string_view.h:44
constexpr CharT const * cbegin() const
Definition: string_view.h:46
const_reverse_iterator rend() const noexcept
Definition: string_view.h:57
constexpr StringView(CharT const *str, size_t size)
Definition: string_view.h:29
bool operator==(IntrusivePtr< T > const &x, IntrusivePtr< U > const &y) noexcept
Definition: intrusive_ptr.h:150
StringView(std::string const &str)
Definition: string_view.h:30
namespace of xgboost
Definition: base.h:110