WPILibC++ 2023.4.3
wpi::SmallString< InternalLen > Class Template Reference

SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g. More...

#include </home/runner/work/allwpilib/allwpilib/wpiutil/src/main/native/thirdparty/llvm/include/wpi/SmallString.h>

Inheritance diagram for wpi::SmallString< InternalLen >:
wpi::SmallVector< char, InternalLen > wpi::SmallVectorImpl< char > wpi::SmallVectorStorage< char, N > wpi::SmallVectorTemplateBase< char > wpi::SmallVectorTemplateCommon< char > wpi::SmallVectorBase

Public Member Functions

 SmallString ()=default
 Default ctor - Initialize to empty. More...
 
 SmallString (std::string_view S)
 Initialize from a std::string_view. More...
 
 SmallString (std::initializer_list< std::string_view > Refs)
 Initialize by concatenating a list of std::string_views. More...
 
template<typename ItTy >
 SmallString (ItTy S, ItTy E)
 Initialize with a range. More...
 
std::string_view str () const
 Explicit conversion to std::string_view. More...
 
const char * c_str ()
 
 operator std::string_view () const
 Implicit conversion to std::string_view. More...
 
 operator std::string () const
 
SmallStringoperator= (std::string_view RHS)
 
SmallStringoperator+= (std::string_view RHS)
 
SmallStringoperator+= (char C)
 
String Assignment
void assign (std::string_view RHS)
 Assign from a std::string_view. More...
 
void assign (std::initializer_list< std::string_view > Refs)
 Assign from a list of std::string_views. More...
 
String Concatenation
void append (std::string_view RHS)
 Append from a std::string_view. More...
 
void append (std::initializer_list< std::string_view > Refs)
 Append from a list of std::string_views. More...
 
String Comparison
int compare (std::string_view RHS) const
 Compare two strings; the result is -1, 0, or 1 if this string is lexicographically less than, equal to, or greater than the RHS. More...
 
String Searching
size_t find (char C, size_t From=0) const
 find - Search for the first character C in the string. More...
 
size_t find (std::string_view Str, size_t From=0) const
 Search for the first string Str in the string. More...
 
size_t rfind (char C, size_t From=std::string_view::npos) const
 Search for the last character C in the string. More...
 
size_t rfind (std::string_view Str) const
 Search for the last string Str in the string. More...
 
size_t find_first_of (char C, size_t From=0) const
 Find the first character in the string that is C, or npos if not found. More...
 
size_t find_first_of (std::string_view Chars, size_t From=0) const
 Find the first character in the string that is in Chars, or npos if not found. More...
 
size_t find_first_not_of (char C, size_t From=0) const
 Find the first character in the string that is not C or npos if not found. More...
 
size_t find_first_not_of (std::string_view Chars, size_t From=0) const
 Find the first character in the string that is not in the string Chars, or npos if not found. More...
 
size_t find_last_of (char C, size_t From=std::string_view::npos) const
 Find the last character in the string that is C, or npos if not found. More...
 
size_t find_last_of (std::string_view Chars, size_t From=std::string_view::npos) const
 Find the last character in the string that is in C, or npos if not found. More...
 
- Public Member Functions inherited from wpi::SmallVector< char, InternalLen >
 SmallVector ()
 
 SmallVector (size_t Size, const char &Value=char())
 
 SmallVector (ItTy S, ItTy E)
 
 SmallVector (const iterator_range< RangeTy > &R)
 
 SmallVector (std::initializer_list< char > IL)
 
 SmallVector (const SmallVector &RHS)
 
 SmallVector (SmallVector &&RHS)
 
 SmallVector (SmallVectorImpl< char > &&RHS)
 
 ~SmallVector ()
 
SmallVectoroperator= (const SmallVector &RHS)
 
SmallVectoroperator= (SmallVector &&RHS)
 
SmallVectoroperator= (SmallVectorImpl< char > &&RHS)
 
SmallVectoroperator= (std::initializer_list< char > IL)
 
- Public Member Functions inherited from wpi::SmallVectorImpl< char >
 SmallVectorImpl (const SmallVectorImpl &)=delete
 
 ~SmallVectorImpl ()
 
void clear ()
 
void resize (size_type N)
 
void resize (size_type N, ValueParamT NV)
 
void resize_for_overwrite (size_type N)
 Like resize, but T is POD, the new values won't be initialized. More...
 
void truncate (size_type N)
 Like resize, but requires that N is less than size(). More...
 
void reserve (size_type N)
 
void pop_back_n (size_type NumItems)
 
LLVM_NODISCARD char pop_back_val ()
 
void swap (SmallVectorImpl &RHS)
 
void append (in_iter in_start, in_iter in_end)
 Add the specified range to the end of the SmallVector. More...
 
void append (size_type NumInputs, ValueParamT Elt)
 Append NumInputs copies of Elt to the end. More...
 
void append (std::initializer_list< char > IL)
 
void append (const SmallVectorImpl &RHS)
 
void assign (size_type NumElts, ValueParamT Elt)
 
void assign (in_iter in_start, in_iter in_end)
 
void assign (std::initializer_list< char > IL)
 
void assign (const SmallVectorImpl &RHS)
 
iterator erase (const_iterator CI)
 
iterator erase (const_iterator CS, const_iterator CE)
 
iterator insert (iterator I, char &&Elt)
 
iterator insert (iterator I, const char &Elt)
 
iterator insert (iterator I, size_type NumToInsert, ValueParamT Elt)
 
iterator insert (iterator I, ItTy From, ItTy To)
 
void insert (iterator I, std::initializer_list< char > IL)
 
reference emplace_back (ArgTypes &&... Args)
 
SmallVectorImploperator= (const SmallVectorImpl &RHS)
 
SmallVectorImploperator= (SmallVectorImpl &&RHS)
 
bool operator== (const SmallVectorImpl &RHS) const
 
bool operator!= (const SmallVectorImpl &RHS) const
 
bool operator< (const SmallVectorImpl &RHS) const
 
- Public Member Functions inherited from wpi::SmallVectorTemplateBase< char >
void push_back (const char &Elt)
 
void push_back (char &&Elt)
 
void pop_back ()
 
- Public Member Functions inherited from wpi::SmallVectorTemplateCommon< char >
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
size_type size_in_bytes () const
 
size_type max_size () const
 
size_t capacity_in_bytes () const
 
pointer data ()
 Return a pointer to the vector's buffer, even if empty(). More...
 
const_pointer data () const
 Return a pointer to the vector's buffer, even if empty(). More...
 
reference operator[] (size_type idx)
 
const_reference operator[] (size_type idx) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
size_t capacity () const
 
LLVM_NODISCARD bool empty () const
 
size_t size () const
 
- Public Member Functions inherited from wpi::SmallVectorBase
size_t size () const
 
size_t capacity () const
 
LLVM_NODISCARD bool empty () const
 

Additional Inherited Members

- Public Types inherited from wpi::SmallVectorImpl< char >
using iterator = typename SuperClass::iterator
 
using const_iterator = typename SuperClass::const_iterator
 
using reference = typename SuperClass::reference
 
using size_type = typename SuperClass::size_type
 
- Public Types inherited from wpi::SmallVectorTemplateCommon< char >
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using value_type = char
 
using iterator = char *
 
using const_iterator = const char *
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using reference = char &
 
using const_reference = const char &
 
using pointer = char *
 
using const_pointer = const char *
 
- Protected Types inherited from wpi::SmallVectorImpl< char >
using ValueParamT = typename SuperClass::ValueParamT
 
- Protected Types inherited from wpi::SmallVectorTemplateBase< char >
using ValueParamT = const char &
 
- Protected Member Functions inherited from wpi::SmallVectorImpl< char >
 SmallVectorImpl (unsigned N)
 
void assignRemote (SmallVectorImpl &&RHS)
 
- Protected Member Functions inherited from wpi::SmallVectorTemplateBase< char >
 SmallVectorTemplateBase (size_t Size)
 
void grow (size_t MinSize=0)
 Grow the allocated memory (without initializing new elements), doubling the size of the allocated memory. More...
 
char * mallocForGrow (size_t MinSize, size_t &NewCapacity)
 Create a new allocation big enough for MinSize and pass back its size in NewCapacity. More...
 
void moveElementsForGrow (char *NewElts)
 Move existing elements over to the new allocation NewElts, the middle section of grow(). More...
 
void takeAllocationForGrow (char *NewElts, size_t NewCapacity)
 Transfer ownership of the allocation, finishing up grow(). More...
 
const char * reserveForParamAndGetAddress (const char &Elt, size_t N=1)
 Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage. More...
 
char * reserveForParamAndGetAddress (char &Elt, size_t N=1)
 Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage. More...
 
void growAndAssign (size_t NumElts, const char &Elt)
 
char & growAndEmplaceBack (ArgTypes &&... Args)
 
- Protected Member Functions inherited from wpi::SmallVectorTemplateCommon< char >
 SmallVectorTemplateCommon (size_t Size)
 
void grow_pod (size_t MinSize, size_t TSize)
 
bool isSmall () const
 Return true if this is a smallvector which has not had dynamic memory allocated for it. More...
 
void resetToSmall ()
 Put this vector in a state of being small. More...
 
bool isReferenceToRange (const void *V, const void *First, const void *Last) const
 Return true if V is an internal reference to the given range. More...
 
bool isReferenceToStorage (const void *V) const
 Return true if V is an internal reference to this vector. More...
 
bool isRangeInStorage (const void *First, const void *Last) const
 Return true if First and Last form a valid (possibly empty) range in this vector's storage. More...
 
bool isSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
 Return true unless Elt will be invalidated by resizing the vector to NewSize. More...
 
void assertSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
 Check whether Elt will be invalidated by resizing the vector to NewSize. More...
 
void assertSafeToAdd (const void *Elt, size_t N=1)
 Check whether Elt will be invalidated by increasing the size of the vector by N. More...
 
void assertSafeToReferenceAfterClear (const char *From, const char *To)
 Check whether any part of the range will be invalidated by clearing. More...
 
void assertSafeToReferenceAfterClear (ItTy, ItTy)
 
void assertSafeToAddRange (const char *From, const char *To)
 Check whether any part of the range will be invalidated by growing. More...
 
void assertSafeToAddRange (ItTy, ItTy)
 
- Protected Member Functions inherited from wpi::SmallVectorBase
 SmallVectorBase ()=delete
 
 SmallVectorBase (void *FirstEl, size_t TotalCapacity)
 
void * mallocForGrow (size_t MinSize, size_t TSize, size_t &NewCapacity)
 This is a helper for grow() that's out of line to reduce code duplication. More...
 
void grow_pod (void *FirstEl, size_t MinSize, size_t TSize)
 This is an implementation of the grow() method which only works on POD-like data types and is out of line to reduce code duplication. More...
 
void set_size (size_t N)
 Set the array size to N, which the current array must have enough capacity for. More...
 
- Static Protected Member Functions inherited from wpi::SmallVectorTemplateBase< char >
static void destroy_range (char *S, char *E)
 
static void uninitialized_move (It1 I, It1 E, It2 Dest)
 Move the range [I, E) into the uninitialized memory starting with "Dest", constructing elements as needed. More...
 
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
 Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements as needed. More...
 
static char && forward_value_param (char &&V)
 
static const char & forward_value_param (const char &V)
 
- Static Protected Member Functions inherited from wpi::SmallVectorTemplateCommon< char >
static const char * reserveForParamAndGetAddressImpl (U *This, const char &Elt, size_t N)
 Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage. More...
 
- Static Protected Member Functions inherited from wpi::SmallVectorBase
static constexpr size_t SizeTypeMax ()
 The maximum value of the Size_T used. More...
 
- Protected Attributes inherited from wpi::SmallVectorBase
void * BeginX
 
unsigned Size = 0
 
unsigned Capacity
 
- Static Protected Attributes inherited from wpi::SmallVectorTemplateBase< char >
static constexpr bool TakesParamByValue
 

Detailed Description

template<unsigned InternalLen>
class wpi::SmallString< InternalLen >

SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g.

operator+ etc).

Constructor & Destructor Documentation

◆ SmallString() [1/4]

template<unsigned InternalLen>
wpi::SmallString< InternalLen >::SmallString ( )
default

Default ctor - Initialize to empty.

◆ SmallString() [2/4]

template<unsigned InternalLen>
wpi::SmallString< InternalLen >::SmallString ( std::string_view  S)
inline

Initialize from a std::string_view.

◆ SmallString() [3/4]

template<unsigned InternalLen>
wpi::SmallString< InternalLen >::SmallString ( std::initializer_list< std::string_view Refs)
inline

Initialize by concatenating a list of std::string_views.

◆ SmallString() [4/4]

template<unsigned InternalLen>
template<typename ItTy >
wpi::SmallString< InternalLen >::SmallString ( ItTy  S,
ItTy  E 
)
inline

Initialize with a range.

Member Function Documentation

◆ append() [1/2]

template<unsigned InternalLen>
void wpi::SmallString< InternalLen >::append ( std::initializer_list< std::string_view Refs)
inline

Append from a list of std::string_views.

◆ append() [2/2]

template<unsigned InternalLen>
void wpi::SmallString< InternalLen >::append ( std::string_view  RHS)
inline

Append from a std::string_view.

◆ assign() [1/2]

template<unsigned InternalLen>
void wpi::SmallString< InternalLen >::assign ( std::initializer_list< std::string_view Refs)
inline

Assign from a list of std::string_views.

◆ assign() [2/2]

template<unsigned InternalLen>
void wpi::SmallString< InternalLen >::assign ( std::string_view  RHS)
inline

Assign from a std::string_view.

◆ c_str()

template<unsigned InternalLen>
const char * wpi::SmallString< InternalLen >::c_str ( )
inline

◆ compare()

template<unsigned InternalLen>
int wpi::SmallString< InternalLen >::compare ( std::string_view  RHS) const
inline

Compare two strings; the result is -1, 0, or 1 if this string is lexicographically less than, equal to, or greater than the RHS.

◆ find() [1/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find ( char  C,
size_t  From = 0 
) const
inline

find - Search for the first character C in the string.

Returns
- The index of the first occurrence of C, or npos if not found.

◆ find() [2/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find ( std::string_view  Str,
size_t  From = 0 
) const
inline

Search for the first string Str in the string.

Returns
The index of the first occurrence of Str, or npos if not found.

◆ find_first_not_of() [1/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find_first_not_of ( char  C,
size_t  From = 0 
) const
inline

Find the first character in the string that is not C or npos if not found.

◆ find_first_not_of() [2/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find_first_not_of ( std::string_view  Chars,
size_t  From = 0 
) const
inline

Find the first character in the string that is not in the string Chars, or npos if not found.

Complexity: O(size() + Chars.size())

◆ find_first_of() [1/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find_first_of ( char  C,
size_t  From = 0 
) const
inline

Find the first character in the string that is C, or npos if not found.

Same as find.

◆ find_first_of() [2/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find_first_of ( std::string_view  Chars,
size_t  From = 0 
) const
inline

Find the first character in the string that is in Chars, or npos if not found.

Complexity: O(size() + Chars.size())

◆ find_last_of() [1/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find_last_of ( char  C,
size_t  From = std::string_view::npos 
) const
inline

Find the last character in the string that is C, or npos if not found.

◆ find_last_of() [2/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::find_last_of ( std::string_view  Chars,
size_t  From = std::string_view::npos 
) const
inline

Find the last character in the string that is in C, or npos if not found.

Complexity: O(size() + Chars.size())

◆ operator std::string()

template<unsigned InternalLen>
wpi::SmallString< InternalLen >::operator std::string ( ) const
inlineexplicit

◆ operator std::string_view()

template<unsigned InternalLen>
wpi::SmallString< InternalLen >::operator std::string_view ( ) const
inline

Implicit conversion to std::string_view.

◆ operator+=() [1/2]

template<unsigned InternalLen>
SmallString & wpi::SmallString< InternalLen >::operator+= ( char  C)
inline

◆ operator+=() [2/2]

template<unsigned InternalLen>
SmallString & wpi::SmallString< InternalLen >::operator+= ( std::string_view  RHS)
inline

◆ operator=()

template<unsigned InternalLen>
SmallString & wpi::SmallString< InternalLen >::operator= ( std::string_view  RHS)
inline

◆ rfind() [1/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::rfind ( char  C,
size_t  From = std::string_view::npos 
) const
inline

Search for the last character C in the string.

Returns
The index of the last occurrence of C, or npos if not found.

◆ rfind() [2/2]

template<unsigned InternalLen>
size_t wpi::SmallString< InternalLen >::rfind ( std::string_view  Str) const
inline

Search for the last string Str in the string.

Returns
The index of the last occurrence of Str, or npos if not found.

◆ str()

template<unsigned InternalLen>
std::string_view wpi::SmallString< InternalLen >::str ( ) const
inline

Explicit conversion to std::string_view.


The documentation for this class was generated from the following file: