31template <
typename T, fl::size Extent>
class span;
142 static constexpr fl::size
npos =
static_cast<fl::size
>(-1);
208 template <
typename T>
215 len =
fl::itoa(
static_cast<fl::i32
>(val), buf, 10);
217 len =
fl::utoa32(
static_cast<fl::u32
>(val), buf, 10);
219 return write(buf, len);
236 template <typename InputIt>
240 for (
auto it = first; it != last; ++it) {
252 for (
auto it = first; it != last; ++it, ++i) {
260 for (
auto it = first; it != last; ++it, ++i) {
261 ptr->data()[i] = *it;
263 ptr->data()[len] =
'\0';
273 fl::size
find(
const char* substr, fl::size start_pos)
const FL_NOEXCEPT;
349 return append(
static_cast<target_t
>(val));
384 if (!it_pos)
return end();
385 const char* str_begin =
c_str();
386 const char* str_end = str_begin +
mLength;
387 if (it_pos < str_begin || it_pos >= str_end)
return end();
388 fl::size
pos = it_pos - str_begin;
396 if (!first || !last || first >= last)
return end();
397 const char* str_begin =
c_str();
398 const char* str_end = str_begin +
mLength;
399 if (first < str_begin) first =
begin();
400 if (last > str_end) last =
end();
401 if (first >= str_end)
return end();
402 fl::size
pos = first - str_begin;
403 fl::size count = last - first;
423 int compare(fl::size pos1, fl::size count1,
const char* s, fl::size count2)
const FL_NOEXCEPT;
458 static_cast<
char*>(static_cast<
void*>(this))))
496 return static_cast<char*
>(
static_cast<void*
>(
this)) +
mInlineOffset;
499 return static_cast<const char*
>(
static_cast<const void*
>(
this)) +
mInlineOffset;
bool operator==(const const_iterator &other) const FL_NOEXCEPT
const_iterator operator+(difference_type n) const FL_NOEXCEPT
const_iterator & operator-=(difference_type n) FL_NOEXCEPT
reference operator*() const FL_NOEXCEPT
const_iterator operator--(int) FL_NOEXCEPT
fl::random_access_iterator_tag iterator_category
const_iterator & operator--() FL_NOEXCEPT
reference operator[](difference_type n) const FL_NOEXCEPT
fl::ptrdiff_t difference_type
bool operator>=(const const_iterator &other) const FL_NOEXCEPT
bool operator<=(const const_iterator &other) const FL_NOEXCEPT
const_iterator operator++(int) FL_NOEXCEPT
const_iterator operator-(difference_type n) const FL_NOEXCEPT
bool operator<(const const_iterator &other) const FL_NOEXCEPT
difference_type operator-(const const_iterator &other) const FL_NOEXCEPT
const_iterator(const iterator &it) FL_NOEXCEPT
const_iterator & operator++() FL_NOEXCEPT
const_iterator(const char *p) FL_NOEXCEPT
pointer operator->() const FL_NOEXCEPT
const_iterator & operator+=(difference_type n) FL_NOEXCEPT
const_iterator() FL_NOEXCEPT
bool operator!=(const const_iterator &other) const FL_NOEXCEPT
bool operator>(const const_iterator &other) const FL_NOEXCEPT
bool operator<=(const iterator &other) const FL_NOEXCEPT
iterator operator+(difference_type n) const FL_NOEXCEPT
reference operator[](difference_type n) const FL_NOEXCEPT
iterator & operator+=(difference_type n) FL_NOEXCEPT
bool operator>=(const iterator &other) const FL_NOEXCEPT
iterator operator-(difference_type n) const FL_NOEXCEPT
iterator operator--(int) FL_NOEXCEPT
iterator operator++(int) FL_NOEXCEPT
iterator & operator++() FL_NOEXCEPT
fl::random_access_iterator_tag iterator_category
bool operator!=(const iterator &other) const FL_NOEXCEPT
iterator & operator-=(difference_type n) FL_NOEXCEPT
pointer operator->() const FL_NOEXCEPT
reference operator*() const FL_NOEXCEPT
iterator(char *p) FL_NOEXCEPT
bool operator==(const iterator &other) const FL_NOEXCEPT
difference_type operator-(const iterator &other) const FL_NOEXCEPT
iterator & operator--() FL_NOEXCEPT
bool operator>(const iterator &other) const FL_NOEXCEPT
fl::ptrdiff_t difference_type
bool operator<(const iterator &other) const FL_NOEXCEPT
const_reverse_iterator rbegin() const FL_NOEXCEPT
fl::size length() const FL_NOEXCEPT
const_iterator cbegin() const FL_NOEXCEPT
reverse_iterator rbegin() FL_NOEXCEPT
bool operator==(const basic_string &other) const FL_NOEXCEPT
basic_string & erase(fl::size pos=0, fl::size count=npos) FL_NOEXCEPT
bool is_owning() const FL_NOEXCEPT
fl::size find_last_of(char c, fl::size pos=npos) const FL_NOEXCEPT
const_iterator cend() const FL_NOEXCEPT
bool operator>=(const basic_string &other) const FL_NOEXCEPT
const char * inlineBufferPtr() const FL_NOEXCEPT
void pop_back() FL_NOEXCEPT
bool isNonOwning() const FL_NOEXCEPT
char front() const FL_NOEXCEPT
bool isInline() const FL_NOEXCEPT
bool operator<=(const basic_string &other) const FL_NOEXCEPT
fl::enable_if< fl::is_pointer< T >::value &&fl::is_same< typenamefl::remove_cv< typenamefl::remove_pointer< T >::type >::type, char >::value, char * >::type erase(T first, T last) FL_NOEXCEPT
bool is_literal() const FL_NOEXCEPT
const_iterator begin() const FL_NOEXCEPT
float toFloat() const FL_NOEXCEPT
fl::size write(const fl::u8 *data, fl::size n) FL_NOEXCEPT
bool hasHeapData() const FL_NOEXCEPT
void reserve(fl::size newCapacity) FL_NOEXCEPT
fl::size max_size() const FL_NOEXCEPT
char & at(fl::size pos) FL_NOEXCEPT
bool is_referencing() const FL_NOEXCEPT
bool empty() const FL_NOEXCEPT
void swapWith(basic_string &other) FL_NOEXCEPT
basic_string(const basic_string &) FL_NOEXCEPT=delete
bool operator<(const basic_string &other) const FL_NOEXCEPT
const_reverse_iterator crbegin() const FL_NOEXCEPT
void materialize() FL_NOEXCEPT
bool hasConstView() const FL_NOEXCEPT
void copy(const char *str) FL_NOEXCEPT
fl::size find_first_not_of(char c, fl::size pos=0) const FL_NOEXCEPT
bool hasConstLiteral() const FL_NOEXCEPT
void resize(fl::size count) FL_NOEXCEPT
void push_ascii(char c) FL_NOEXCEPT
const_reverse_iterator rend() const FL_NOEXCEPT
fl::size find_last_not_of(char c, fl::size pos=npos) const FL_NOEXCEPT
const_reverse_iterator crend() const FL_NOEXCEPT
void clear(bool freeMemory=false) FL_NOEXCEPT
void assign(const char *str, fl::size len) FL_NOEXCEPT
NotNullStringHolderPtr & heapData() FL_NOEXCEPT
const_iterator end() const FL_NOEXCEPT
static constexpr fl::size npos
bool starts_with(const char *prefix) const FL_NOEXCEPT
fl::reverse_iterator< iterator > reverse_iterator
basic_string(basic_string &&) FL_NOEXCEPT=delete
void shrink_to_fit() FL_NOEXCEPT
fl::size find(const char &value) const FL_NOEXCEPT
bool is_view() const FL_NOEXCEPT
basic_string & replace(fl::size pos, fl::size count, const basic_string &str) FL_NOEXCEPT
basic_string & insert(fl::size pos, fl::size count, char ch) FL_NOEXCEPT
const char * data() const FL_NOEXCEPT
fl::variant< NotNullStringHolderPtr, ConstLiteral, ConstView > mStorage
char * c_str_mutable() FL_NOEXCEPT
char back() const FL_NOEXCEPT
void setView(const char *data, fl::size len) FL_NOEXCEPT
char * inlineBufferPtr() FL_NOEXCEPT
basic_string & append(const char *str) FL_NOEXCEPT
basic_string & appendHex(i32 val) FL_NOEXCEPT
fl::enable_if< fl::is_multi_byte_integer< T >::value, fl::size >::type write(const T &val) FL_NOEXCEPT
basic_string(char *inlineBuffer, fl::size inlineCapacity) FL_NOEXCEPT
bool contains(const char *substr) const FL_NOEXCEPT
int compare(const basic_string &str) const FL_NOEXCEPT
fl::reverse_iterator< const_iterator > const_reverse_iterator
void moveFrom(basic_string &&other) FL_NOEXCEPT
char charAt(fl::size index) const FL_NOEXCEPT
fl::size find_first_of(char c, fl::size pos=0) const FL_NOEXCEPT
iterator end() FL_NOEXCEPT
void setLiteral(const char *literal) FL_NOEXCEPT
void push_back(char c) FL_NOEXCEPT
fl::size capacity() const FL_NOEXCEPT
reverse_iterator rend() FL_NOEXCEPT
iterator begin() FL_NOEXCEPT
bool operator!=(const basic_string &other) const FL_NOEXCEPT
void setSharedHolder(const fl::shared_ptr< StringHolder > &holder) FL_NOEXCEPT
const char * constData() const FL_NOEXCEPT
const char * c_str() const FL_NOEXCEPT
void moveAssign(basic_string &&other) FL_NOEXCEPT
fl::size rfind(char c, fl::size pos=npos) const FL_NOEXCEPT
bool operator>(const basic_string &other) const FL_NOEXCEPT
fl::size size() const FL_NOEXCEPT
basic_string & appendOct(i32 val) FL_NOEXCEPT
fl::enable_if< fl::is_pointer< T >::value &&fl::is_same< typenamefl::remove_cv< typenamefl::remove_pointer< T >::type >::type, char >::value, char * >::type erase(T it_pos) FL_NOEXCEPT
bool ends_with(const char *suffix) const FL_NOEXCEPT
Concrete type-erased string class.
Reverse iterator adapter - reverses the direction of a bidirectional iterator.
typename fl::conditional< IsSigned, typename fl::conditional< Size==1, fl::i8, typename fl::conditional< Size==2, fl::i16, typename fl::conditional< Size==4, fl::i32, typename fl::conditional< Size==8, fl::i64, fl::i64 >::type >::type >::type >::type, typename fl::conditional< Size==1, fl::u16, typename fl::conditional< Size==2, fl::u16, typename fl::conditional< Size==4, fl::u32, typename fl::conditional< Size==8, fl::u64, fl::u64 >::type >::type >::type >::type >::type type
constexpr int type_rank< T >::value
int itoa(i32 value, char *sp, int radix)
Convert signed 32-bit integer to string buffer in given radix.
fl::not_null< StringHolderPtr > NotNullStringHolderPtr
int utoa32(u32 value, char *sp, int radix)
Convert unsigned 32-bit integer to string buffer in given radix.
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
fl::shared_ptr< fl::StringHolder > StringHolderPtr
Base definition for an LED controller.
constexpr ConstLiteral(const char *str) FL_NOEXCEPT
constexpr ConstLiteral() FL_NOEXCEPT
constexpr ConstView() FL_NOEXCEPT
constexpr ConstView(const char *str, fl::size len) FL_NOEXCEPT