31#ifndef ETL_BASIC_STRING_INCLUDED
32#define ETL_BASIC_STRING_INCLUDED
53#if ETL_USING_LIBC_WCHAR_H
57#if ETL_USING_STL && ETL_USING_CPP17
58 #include <string_view>
76 template <
typename T,
typename TTraits>
77 class basic_string_view;
156 namespace private_basic_string
159 template <
typename T =
void>
164 typedef size_t size_type;
172 template <
typename T>
175 template <
typename T>
178 template <
typename T>
187 typedef size_t size_type;
258#if ETL_HAS_STRING_TRUNCATION_CHECKS
276#if ETL_HAS_STRING_TRUNCATION_CHECKS
286#if ETL_HAS_STRING_CLEAR_AFTER_USE
301#if ETL_HAS_STRING_CLEAR_AFTER_USE
319#if ETL_HAS_STRING_TRUNCATION_CHECKS
339#if ETL_HAS_STRING_TRUNCATION_CHECKS || ETL_HAS_STRING_CLEAR_AFTER_USE
349 template <
typename T>
356 typedef T value_type;
357 typedef T& reference;
358 typedef const T& const_reference;
360 typedef const T* const_pointer;
362 typedef const T* const_iterator;
363 typedef ETL_OR_STD::reverse_iterator<iterator> reverse_iterator;
364 typedef ETL_OR_STD::reverse_iterator<const_iterator> const_reverse_iterator;
366 typedef typename etl::iterator_traits<iterator>::difference_type difference_type;
399 const_iterator
end()
const
428 return reverse_iterator(
end());
437 return const_reverse_iterator(
end());
446 return reverse_iterator(
begin());
453 const_reverse_iterator
rend()
const
455 return const_reverse_iterator(
begin());
464 return const_reverse_iterator(
cend());
471 const_reverse_iterator
crend()
const
473 return const_reverse_iterator(
cbegin());
495#if ETL_HAS_STRING_TRUNCATION_CHECKS
498#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
520 template <
typename TOperation>
582 reference
at(size_type i)
594 const_reference
at(size_type i)
const
649 ETL_CONSTEXPR const_pointer
data()
const
714 template <
typename TIterator>
717 append_impl(
begin(), first, last,
false,
false);
727 append_impl(
begin(), str,
false,
false);
738 append_impl(
begin(), str, str +
n,
false,
false);
744 template <
typename TOtherTraits>
747 append_impl(
begin(),
view.begin(),
view.end(),
false,
false);
760#if ETL_HAS_STRING_TRUNCATION_CHECKS
763#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
798#if ETL_HAS_STRING_TRUNCATION_CHECKS
801#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
856 template <
class TIterator>
859 append_impl(
end(), first, last,
false,
false);
870 append_impl(
end(), str,
false,
false);
882 append_impl(
end(), str, str +
n,
false,
false);
891 template <
typename TOtherTraits>
894 append_impl(
end(),
view.begin(),
view.end(),
false,
false);
908#if ETL_HAS_STRING_TRUNCATION_CHECKS
911#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
918 etl::fill_n(
end(),
n,
c);
930 iterator
insert(const_iterator position,
T value)
938 if (position !=
end())
955 if (position !=
end())
962#if ETL_HAS_STRING_TRUNCATION_CHECKS
965#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
982 iterator
insert(const_iterator position, size_type
n,
T value)
993 const size_type start = etl::distance(
cbegin(), position);
998#if ETL_HAS_STRING_TRUNCATION_CHECKS
1001#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1013#if ETL_HAS_STRING_TRUNCATION_CHECKS
1016#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1039#if ETL_HAS_STRING_TRUNCATION_CHECKS
1042#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1068 template <
typename TIterator>
1079 const size_type
n = etl::distance(first, last);
1084#if ETL_HAS_STRING_TRUNCATION_CHECKS
1087#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1099#if ETL_HAS_STRING_TRUNCATION_CHECKS
1102#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1126#if ETL_HAS_STRING_TRUNCATION_CHECKS
1129#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1156 template <
typename TOtherTraits>
1173#if ETL_HAS_STRING_TRUNCATION_CHECKS
1178#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1192 template <
typename TOtherTraits>
1221#if ETL_HAS_STRING_TRUNCATION_CHECKS
1226#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1242 template <
typename TOtherTraits>
1351 iterator
erase(const_iterator first, const_iterator last)
1385 size_type
copy(pointer
dest, size_type count, size_type
pos = 0)
const
1391 count = etl::min(count,
size() -
pos);
1398 etl::mem_move(p_buffer +
pos, count,
dest);
1423 template <
typename TOtherTraits>
1434 size_type
find(const_pointer
s, size_type
pos = 0)
const
1447 size_type
find(const_pointer
s, size_type
pos, size_type
n)
const
1451 return find_impl(
s,
s +
n,
sz,
pos);
1459 size_type
find(
T c, size_type position = 0)
const
1461 const_iterator i = etl::find(
begin() + position,
end(),
c);
1465 return etl::distance(
begin(), i);
1480 return rfind_impl(str.
rbegin(), str.
rend(), str.
size(), position);
1488 template <
typename TOtherTraits>
1499 size_type
rfind(const_pointer
s, size_type position = npos)
const
1504 const_reverse_iterator
srend(
s);
1517 const_reverse_iterator
srend(
s);
1527 size_type
rfind(
T c, size_type position = npos)
const
1529 if (position >=
size())
1534 position =
size() - position;
1536 const_reverse_iterator i = etl::find(
rbegin() + position,
rend(),
c);
1540 return size() - etl::distance(
rbegin(), i) - 1;
1553 return find(str) != npos;
1559 template <
typename TOtherTraits>
1570 return find(
s) != npos;
1578 return find(
c) != npos;
1592 template <
typename TOtherTraits>
1632 template <
typename TOtherTraits>
1694 template <
typename TOtherTraits>
1729#if ETL_HAS_STRING_TRUNCATION_CHECKS
1734#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1749 template <
typename TOtherTraits>
1783#if ETL_HAS_STRING_TRUNCATION_CHECKS
1788#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
1800 template <
typename TOtherTraits>
1933 template <
typename TIterator>
1957 str.p_buffer + str.
size());
1963 template <
typename TOtherTraits>
1982 return compare(p_buffer + position,
1983 p_buffer + position +
length_,
1985 str.p_buffer + str.
size());
1991 template <
typename TOtherTraits>
1994 return compare(p_buffer + position,
1995 p_buffer + position +
length_,
2012 return compare(p_buffer + position,
2013 p_buffer + position +
length_,
2021 template <
typename TOtherTraits>
2031 return compare(p_buffer + position,
2032 p_buffer + position +
length_,
2053 return compare(p_buffer + position,
2054 p_buffer + position +
length_,
2064 return compare(p_buffer + position,
2065 p_buffer + position +
length_,
2095 template <
typename TOtherTraits>
2109 if (position <
size())
2111 for (size_type i = position; i <
size(); ++i)
2113 for (size_type
j = 0;
j <
n; ++
j)
2115 if (p_buffer[i] ==
s[
j])
2133 if (position <
size())
2135 for (size_type i = position; i <
size(); ++i)
2137 if (p_buffer[i] ==
c)
2172 template <
typename TOtherTraits>
2191 position = etl::min(position,
size() - 1);
2193 const_reverse_iterator it =
rbegin() +
size() - position - 1;
2195 while (it !=
rend())
2197 for (size_type
j = 0;
j <
n; ++
j)
2199 if (p_buffer[position] ==
s[
j])
2224 position = etl::min(position,
size() - 1);
2226 const_reverse_iterator it =
rbegin() +
size() - position - 1;
2228 while (it !=
rend())
2230 if (p_buffer[position] ==
c)
2267 template <
typename TOtherTraits>
2281 if (position <
size())
2283 for (size_type i = position; i <
size(); ++i)
2287 for (size_type
j = 0;
j <
n; ++
j)
2289 if (p_buffer[i] ==
s[
j])
2312 if (position <
size())
2314 for (size_type i = position; i <
size(); ++i)
2316 if (*(p_buffer + i) !=
c)
2351 template <
typename TOtherTraits>
2370 position = etl::min(position,
size() - 1);
2372 const_reverse_iterator it =
rbegin() +
size() - position - 1;
2374 while (it !=
rend())
2378 for (size_type
j = 0;
j <
n; ++
j)
2380 if (p_buffer[position] ==
s[
j])
2408 position = etl::min(position,
size() - 1);
2410 const_reverse_iterator it =
rbegin() +
size() - position - 1;
2412 while (it !=
rend())
2414 if (p_buffer[position] !=
c)
2452 template <
typename TOtherTraits>
2473 template <
typename TOtherTraits>
2501#if ETL_HAS_ISTRING_REPAIR
2505 virtual void repair() = 0;
2513#if ETL_HAS_STRING_TRUNCATION_CHECKS
2526#if ETL_HAS_STRING_TRUNCATION_CHECKS
2552#if ETL_HAS_STRING_TRUNCATION_CHECKS
2582 if (
static_cast<type
>(*
first1) <
static_cast<type
>(*
first2))
2587 else if (
static_cast<type
>(*
first1) >
static_cast<type
>(*
first2))
2620#if ETL_HAS_STRING_CLEAR_AFTER_USE
2641#if defined(ETL_POLYMORPHIC_STRINGS) || defined(ETL_POLYMORPHIC_CONTAINERS) || defined(ETL_ISTRING_REPAIR_ENABLE)
2649#if ETL_HAS_STRING_CLEAR_AFTER_USE
2664 return const_cast<iterator
>(itr);
2673 template <
typename TIterator1,
typename TIterator2>
2687 template <
typename TIterator1,
typename TIterator2>
2706 template <
typename TIterator>
2709 difference_type start = etl::distance(p_buffer, position);
2710 difference_type count = etl::distance(first, last);
2713#if ETL_IS_DEBUG_BUILD
2714 ETL_ASSERT(count >= 0, ETL_ERROR(string_iterator));
2717#if ETL_HAS_STRING_TRUNCATION_CHECKS
2720#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
2725#if ETL_HAS_STRING_CLEAR_AFTER_USE
2734 copy_characters(first,
size_t(count), position);
2746 if (
src == ETL_NULLPTR)
2752 difference_type start = etl::distance(p_buffer, position);
2755 pointer
dst = position;
2758 etl::mem_move(
src, count,
dst);
2764#if ETL_HAS_STRING_TRUNCATION_CHECKS
2766#if ETL_HAS_ERROR_ON_STRING_TRUNCATION
2771#if ETL_HAS_STRING_CLEAR_AFTER_USE
2784 template <
typename TIterator>
2807 template <
typename TIterator>
2837 template <
typename U>
2840 get_string_length(
const U* str)
2842 return ::strlen(
reinterpret_cast<const char*
>(str));
2845#if ETL_USING_LIBC_WCHAR_H
2849 template <
typename U>
2852 get_string_length(
const U* str)
2854 return ::wcslen(
reinterpret_cast<const wchar_t*
>(str));
2861 template <
typename U>
2863#if ETL_USING_LIBC_WCHAR_H
2868 get_string_length(
const U* str)
2870 if (str == ETL_NULLPTR)
2893 template <
typename T>
2896 return (
lhs.size() ==
rhs.size()) && etl::equal(
lhs.begin(),
lhs.end(),
rhs.begin());
2906 template <
typename T>
2919 template <
typename T>
2932 template <
typename T>
2945 template <
typename T>
2958 template <
typename T>
2971 template <
typename T>
2974 return etl::lexicographical_compare(
lhs.begin(),
lhs.end(),
rhs.begin(),
rhs.end());
2984 template <
typename T>
2997 template <
typename T>
3011 template <
typename T>
3024 template <
typename T>
3037 template <
typename T>
3051 template <
typename T>
3064 template <
typename T>
3077 template <
typename T>
3091 template <
typename T>
3104 template <
typename T>
3117 template <
typename T>
3131 template <
typename T>
3132 std::basic_ostream<T, std::char_traits<T> > &
operator<<(std::basic_ostream<
T, std::char_traits<T> > &
os,
3141#undef ETL_USING_WCHAR_T_H
String view.
Definition string_view.h:104
ETL_CONSTEXPR14 flags< T, MASK > & set() ETL_NOEXCEPT
Set the bits.
Definition flags.h:102
ETL_CONSTEXPR bool test() const ETL_NOEXCEPT
Tests bits.
Definition flags.h:87
Definition basic_string.h:351
int compare(size_type position, size_type length_, const ibasic_string &str) const
Compare position / length with string.
Definition basic_string.h:1975
ibasic_string & append(TIterator first, TIterator last)
Definition basic_string.h:857
size_type find_last_of(const_pointer s, size_type position=npos) const
Definition basic_string.h:2162
size_type rfind(const_pointer s, size_type position=npos) const
Definition basic_string.h:1499
ibasic_string & replace(const_iterator first, const_iterator last, const etl::basic_string_view< T, TOtherTraits > &view)
Definition basic_string.h:1750
etl::ibasic_string< T > & insert(size_type position, const etl::ibasic_string< T > &str)
Definition basic_string.h:1167
size_type find_last_not_of(const_pointer s, size_type position=npos) const
Definition basic_string.h:2341
size_type find(const_pointer s, size_type pos=0) const
Definition basic_string.h:1434
ibasic_string & operator=(const ibasic_string &rhs)
Assignment operator.
Definition basic_string.h:2429
ibasic_string & append(const ibasic_string &str, size_type subposition, size_type sublength=npos)
Definition basic_string.h:837
const_reverse_iterator rbegin() const
Definition basic_string.h:435
bool contains(const etl::ibasic_string< T > &str) const
Checks that the string is within this string.
Definition basic_string.h:1551
reference operator[](size_type i)
Definition basic_string.h:561
void assign(const etl::ibasic_string< T > &other, size_type subposition, size_type sublength)
Definition basic_string.h:692
etl::ibasic_string< T > & insert(size_type position, const etl::basic_string_view< T, TOtherTraits > &view, size_type subposition, size_type sublength)
Definition basic_string.h:1243
pointer data_end()
Definition basic_string.h:658
iterator erase(const_iterator first, const_iterator last)
Definition basic_string.h:1351
iterator insert(const_iterator position, TIterator first, TIterator last)
Definition basic_string.h:1069
bool contains(value_type c) const
Checks that character is within this string.
Definition basic_string.h:1576
size_type find_last_of(const ibasic_string< T > &str, size_type position=npos) const
Definition basic_string.h:2152
size_type find_first_of(value_type c, size_type position=0) const
Definition basic_string.h:2131
bool starts_with(const etl::ibasic_string< T > &str) const
Checks that the string is the start of this string.
Definition basic_string.h:1584
size_type find(T c, size_type position=0) const
Definition basic_string.h:1459
ibasic_string & replace(size_type position, size_type length_, const etl::basic_string_view< T, TOtherTraits > &view, size_type subposition, size_type sublength)
Replace characters from 'position' of 'length' with 'view' from 'subposition' of 'sublength'.
Definition basic_string.h:1801
bool ends_with(value_type c) const
Checks that the character is the end of this string.
Definition basic_string.h:1661
void pop_back()
Definition basic_string.h:812
size_type rfind(const ibasic_string< T > &str, size_type position=npos) const
Definition basic_string.h:1478
bool contains(const_pointer s) const
Checks that text is within this string.
Definition basic_string.h:1568
etl::ibasic_string< T > & insert(size_type position, const etl::basic_string_view< T, TOtherTraits > &view)
Definition basic_string.h:1193
void resize_and_overwrite(size_type new_size, TOperation operation)
Resizes the string and overwrites to data using the operation.
Definition basic_string.h:521
void initialize_free_space()
Clears the free space to string terminator value.
Definition basic_string.h:2511
ibasic_string & replace(size_type position, size_type length_, const_pointer s, size_type n)
Replace characters from 'position' of 'length' with 'n' characters from pointed to string.
Definition basic_string.h:1859
iterator to_iterator(const_iterator itr) const
Convert from const_iterator to iterator.
Definition basic_string.h:2662
ibasic_string & replace(size_type position, size_type length_, size_type n, value_type c)
Replace characters from 'position' of 'length' with 'n' copies of 'c'.
Definition basic_string.h:1896
ibasic_string & replace(const_iterator first, const_iterator last, const ibasic_string &str)
Definition basic_string.h:1717
size_type find_first_of(const ibasic_string< T > &str, size_type position=0) const
Definition basic_string.h:2075
size_type find_first_of(const etl::basic_string_view< T, TOtherTraits > &view, size_type position=0) const
Definition basic_string.h:2096
const_reference back() const
Definition basic_string.h:631
void assign(const_pointer str, size_type n)
Definition basic_string.h:736
const_iterator begin() const
Definition basic_string.h:381
size_type find_last_of(const_pointer s, size_type position, size_type n) const
Definition basic_string.h:2184
bool ends_with(const etl::basic_string_view< T, TOtherTraits > &view) const
Checks that the view is the end of this string.
Definition basic_string.h:1633
reverse_iterator rbegin()
Definition basic_string.h:426
ibasic_string & replace(const_iterator first, const_iterator last, TIterator first_replace, TIterator last_replace)
Replace characters from 'first' of 'last' with characters from 'first_replace' to 'last_replace'.
Definition basic_string.h:1934
void resize(size_type new_size)
Definition basic_string.h:481
size_type find_last_not_of(const_pointer s, size_type position, size_type n) const
Definition basic_string.h:2363
ibasic_string & replace(size_type position, size_type length_, const etl::basic_string_view< T, TOtherTraits > &view)
Definition basic_string.h:1695
size_type find_first_not_of(const_pointer s, size_type position=0) const
Definition basic_string.h:2257
size_type rfind(T c, size_type position=npos) const
Definition basic_string.h:1527
etl::ibasic_string< T > & erase(size_type position, size_type length_=npos)
Definition basic_string.h:1305
int compare(const value_type *s) const
Compare with C string.
Definition basic_string.h:2040
int compare(size_type position, size_type length_, const_pointer s) const
Compare position / length with C string.
Definition basic_string.h:2051
iterator insert(const_iterator position, size_type n, T value)
Definition basic_string.h:982
ibasic_string & append(const etl::basic_string_view< T, TOtherTraits > &view)
Definition basic_string.h:892
const_reference at(size_type i) const
Definition basic_string.h:594
void assign(const etl::basic_string_view< T, TOtherTraits > &view)
Assigns values to the string from a view.
Definition basic_string.h:745
void clear()
Clears the string.
Definition basic_string.h:778
int compare(size_type position, size_type length_, const ibasic_string &str, size_type subposition, size_type sublength) const
Compare position / length with string / subposition / sublength.
Definition basic_string.h:2003
reverse_iterator rend()
Definition basic_string.h:444
size_type find_last_of(const etl::basic_string_view< T, TOtherTraits > &view, size_type position=npos) const
Definition basic_string.h:2173
iterator erase(iterator i_element)
Definition basic_string.h:1320
ibasic_string & append(const_pointer str, size_type n)
Definition basic_string.h:880
const_reverse_iterator crend() const
Definition basic_string.h:471
bool contains(const etl::basic_string_view< T, TOtherTraits > &view) const
Checks that the view is within this string.
Definition basic_string.h:1560
reference at(size_type i)
Definition basic_string.h:582
size_type rfind(const etl::basic_string_view< T, TOtherTraits > &view, size_type pos=0) const
Definition basic_string.h:1489
bool starts_with(value_type c) const
Checks that the character is the start of this string.
Definition basic_string.h:1611
int compare(const etl::basic_string_view< T, TOtherTraits > &view) const
Compare with etl::basic_string_view.
Definition basic_string.h:1964
~ibasic_string()
Destructor.
Definition basic_string.h:2647
ibasic_string & replace(const_iterator first, const_iterator last, const_pointer s)
Replace characters from 'first' 'last' with pointed to string.
Definition basic_string.h:1841
size_type find(const_pointer s, size_type pos, size_type n) const
Definition basic_string.h:1447
size_type find_first_of(const_pointer s, size_type position=0) const
Definition basic_string.h:2085
ibasic_string & replace(size_type position, size_type length_, const ibasic_string &str, size_type subposition, size_type sublength)
Replace characters from 'position' of 'length' with 'str' from 'subposition' of 'sublength'.
Definition basic_string.h:1768
iterator begin()
Definition basic_string.h:372
iterator end()
Definition basic_string.h:390
ibasic_string & replace(const_iterator first, const_iterator last, size_type n, value_type c)
Replace characters from 'first' of 'last' with 'n' copies of 'c'.
Definition basic_string.h:1915
ibasic_string & replace(const_iterator first, const_iterator last, const_pointer s, size_type n)
Replace characters from 'first' to 'last' with 'n' characters from pointed to string.
Definition basic_string.h:1878
void assign(TIterator first, TIterator last)
Definition basic_string.h:715
etl::ibasic_string< T > & insert(size_type position, const etl::ibasic_string< T > &str, size_type subposition, size_type sublength)
Definition basic_string.h:1209
size_type find(const ibasic_string< T > &str, size_type pos=0) const
Definition basic_string.h:1413
void push_back(T value)
Definition basic_string.h:789
size_type find_first_not_of(const_pointer s, size_type position, size_type n) const
Definition basic_string.h:2279
const_reverse_iterator crbegin() const
Definition basic_string.h:462
iterator insert(const_iterator position, T value)
Definition basic_string.h:930
etl::ibasic_string< T > & insert(size_type position, const_pointer s, size_type n)
Definition basic_string.h:1277
ibasic_string & replace(size_type position, size_type length_, const ibasic_string &str)
Definition basic_string.h:1672
ibasic_string(T *p_buffer_, size_type MAX_SIZE_)
Constructor.
Definition basic_string.h:2539
bool ends_with(const_pointer s) const
Checks that the string is the end of this string.
Definition basic_string.h:1646
etl::ibasic_string< T > & insert(size_type position, size_type n, value_type c)
Definition basic_string.h:1291
const_reverse_iterator rend() const
Definition basic_string.h:453
size_type find_last_not_of(const ibasic_string< T > &str, size_type position=npos) const
Definition basic_string.h:2331
size_type find(const etl::basic_string_view< T, TOtherTraits > &view, size_type pos=0) const
Definition basic_string.h:1424
const_pointer data_end() const
Definition basic_string.h:667
void assign(const etl::ibasic_string< T > &other)
Definition basic_string.h:677
const_iterator cend() const
Definition basic_string.h:417
const_pointer c_str() const
Return a pointer to a C string.
Definition basic_string.h:1374
void resize(size_type new_size, T value)
Definition basic_string.h:491
ETL_CONSTEXPR const_pointer data() const
Definition basic_string.h:649
const_reference front() const
Definition basic_string.h:613
pointer data()
Definition basic_string.h:640
size_type find_first_not_of(value_type c, size_type position=0) const
Definition basic_string.h:2310
ibasic_string & append(const_pointer str)
Definition basic_string.h:868
ibasic_string & append(size_type n, T c)
Definition basic_string.h:904
size_type find_first_not_of(const ibasic_string< T > &str, size_type position=0) const
Definition basic_string.h:2247
size_type find_last_of(value_type c, size_type position=npos) const
Definition basic_string.h:2217
size_type copy(pointer dest, size_type count, size_type pos=0) const
Definition basic_string.h:1385
ibasic_string & append(const ibasic_string &str)
Definition basic_string.h:824
size_type find_last_not_of(const etl::basic_string_view< T, TOtherTraits > &view, size_type position=npos) const
Definition basic_string.h:2352
ibasic_string & replace(size_type position, size_type length_, const_pointer s)
Replace characters from 'position' of 'length' with pointed to string.
Definition basic_string.h:1822
reference front()
Definition basic_string.h:604
reference back()
Definition basic_string.h:622
bool starts_with(const_pointer s) const
Checks that the string is the start of this string.
Definition basic_string.h:1601
const_iterator cbegin() const
Definition basic_string.h:408
size_type find_first_not_of(const etl::basic_string_view< T, TOtherTraits > &view, size_type position=0) const
Definition basic_string.h:2268
int compare(size_type position, size_type length_, const etl::basic_string_view< T, TOtherTraits > &view, size_type subposition, size_type sublength) const
Compare position / length with etl::basic_string_view. / subposition / sublength.
Definition basic_string.h:2022
void assign(size_type n, T c)
Definition basic_string.h:756
void initialise()
Initialise the string.
Definition basic_string.h:2548
bool starts_with(const etl::basic_string_view< T, TOtherTraits > &view) const
Checks that the view is the start of this string.
Definition basic_string.h:1593
ibasic_string & operator+=(const ibasic_string &rhs)
+= operator.
Definition basic_string.h:2463
void trim_to_terminator()
Definition basic_string.h:2524
void uninitialized_resize(size_type new_size)
Definition basic_string.h:538
int compare(size_type position, size_type length_, const_pointer s, size_type n) const
Compare position / length with C string / n.
Definition basic_string.h:2062
size_type rfind(const_pointer s, size_type position, size_type length_) const
Definition basic_string.h:1514
bool ends_with(const etl::ibasic_string< T > &str) const
Checks that the string is the end of this string.
Definition basic_string.h:1619
size_type find_first_of(const_pointer s, size_type position, size_type n) const
Definition basic_string.h:2107
int compare(const ibasic_string &str) const
Compare with string.
Definition basic_string.h:1952
const_iterator end() const
Definition basic_string.h:399
iterator erase(const_iterator i_element)
Definition basic_string.h:1333
int compare(size_type position, size_type length_, const etl::basic_string_view< T, TOtherTraits > &view) const
Compare position / length with etl::basic_string_view.
Definition basic_string.h:1992
etl::ibasic_string< T > & insert(size_type position, const_pointer s)
Definition basic_string.h:1263
void assign(const_pointer str)
Definition basic_string.h:725
void fill(T value)
Definition basic_string.h:551
void repair_buffer(T *p_buffer_)
Fix the internal pointers after a low level memory copy.
Definition basic_string.h:2560
iterator insert(const_iterator position, const etl::basic_string_view< T, TOtherTraits > &view)
Definition basic_string.h:1157
Definition basic_string.h:161
Definition basic_string.h:184
void set_secure()
Sets the 'secure' flag to the requested state.
Definition basic_string.h:290
bool is_secure() const
Gets the 'secure' state flag.
Definition basic_string.h:299
const size_type CAPACITY
The maximum number of elements in the string.
Definition basic_string.h:337
bool full() const
Definition basic_string.h:220
~string_base()
Destructor.
Definition basic_string.h:332
ETL_DEPRECATED bool truncated() const
Definition basic_string.h:271
void set_truncated(bool status)
Sets the 'truncated' flag.
Definition basic_string.h:323
size_type max_size() const
Definition basic_string.h:238
string_base(size_type max_size_)
Constructor.
Definition basic_string.h:313
void clear_truncated()
Clears the 'truncated' flag.
Definition basic_string.h:280
size_type length() const
Definition basic_string.h:202
size_type current_size
The current number of elements in the string.
Definition basic_string.h:336
size_type available() const
Definition basic_string.h:247
bool empty() const
Definition basic_string.h:211
size_type capacity() const
Definition basic_string.h:229
bool is_truncated() const
Definition basic_string.h:256
size_type size() const
Definition basic_string.h:193
Definition basic_string.h:101
Definition basic_string.h:87
Definition basic_string.h:129
Definition basic_string.h:115
Definition basic_string.h:143
#define ETL_ASSERT(b, e)
Definition error_handler.h:356
Definition exception.h:47
Definition integral_limits.h:516
enable_if
Definition type_traits_generator.h:1230
is_pointer
Definition type_traits_generator.h:1140
make_unsigned
Definition type_traits_generator.h:1220
bitset_ext
Definition absolute.h:38
std::basic_ostream< T, std::char_traits< T > > & operator<<(std::basic_ostream< T, std::char_traits< T > > &os, const etl::ibasic_string< T > &str)
Definition basic_string.h:3132
bool operator>(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1148
bool operator>=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1160
bool operator!=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1109
ETL_CONSTEXPR14 size_t strlen(const T *t)
Alternative strlen for all character types.
Definition char_traits.h:287
bool operator==(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1097
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:314
bool operator<(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1121
bool operator<=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:1136