4 #ifndef XGBOOST_STRING_VIEW_H_ 
 5 #define XGBOOST_STRING_VIEW_H_ 
 6 #include <xgboost/logging.h>  
 19  using Traits = std::char_traits<CharT>
 
 20  CharT 
const* str_{
nullptr};
 
 35  : str_{str}, size_{str == nullptr ? 0ul : Traits::length(str)} {}
 
 38  [[nodiscard]] 
explicit operator std::string()
 const { 
return {this->
c_str(), this->
size()}; }
 
 43  [[nodiscard]] constexpr std::size_t 
size()
 const { 
return size_; } 
 
 44  [[nodiscard]] constexpr 
bool empty()
 const { 
return size() == 0; } 
 
 47  std::size_t len = std::min(n, size_ - beg);
 
 48  return {str_ + beg, len};
 
span类实现,基于ISO++20 span<T>。接口应相同。
Definition: span.h:431
集成目标、gbm和评估的学习器接口。这是用户面临的XGB...
Definition: base.h:97
bool operator!=(IntrusivePtr< T > const &x, IntrusivePtr< U > const &y) noexcept
定义: intrusive_ptr.h:155
bool operator==(IntrusivePtr< T > const &x, IntrusivePtr< U > const &y) noexcept
定义: intrusive_ptr.h:150
std::ostream & operator<<(std::ostream &os, DeviceOrd ord)
bool operator<(IntrusivePtr< T > const &x, IntrusivePtr< T > const &y) noexcept
定义: intrusive_ptr.h:180
Definition: string_view.h:16
const_reverse_iterator rbegin() const noexcept
定义: string_view.h:57
StringView(std::string const &str)
定义: string_view.h:33
const CharT * iterator
定义: string_view.h:25
value_type const & operator[](std::size_t p) const
定义: string_view.h:37
constexpr bool empty() const
定义: string_view.h:44
CharT value_type
定义: string_view.h:24
constexpr const_iterator cend() const
定义: string_view.h:53
constexpr StringView()=default
reverse_iterator const_reverse_iterator
定义: string_view.h:28
const_reverse_iterator rend() const noexcept
定义: string_view.h:63
constexpr StringView(value_type const *str, std::size_t size)
定义: string_view.h:32
value_type const & at(std::size_t p) const
定义: string_view.h:39
constexpr const_iterator cbegin() const
定义: string_view.h:52
std::reverse_iterator< const_iterator > reverse_iterator
定义: string_view.h:27
value_type const * c_str() const
定义: string_view.h:50
constexpr iterator end() const
定义: string_view.h:55
constexpr iterator begin() const
定义: string_view.h:54
StringView substr(std::size_t beg, std::size_t n) const
定义: string_view.h:45
const_reverse_iterator crbegin() const noexcept
定义: string_view.h:60
constexpr StringView(value_type const *str)
定义: string_view.h:34
iterator const_iterator
定义: string_view.h:26
const_reverse_iterator crend() const noexcept
定义: string_view.h:66
constexpr std::size_t size() const
定义: string_view.h:43