GCC Middle and Back End API Reference
string_slice Class Reference

#include <vec.h>

Inheritance diagram for string_slice:
Collaboration diagram for string_slice:

Public Types

using value_type
using iterator
using const_iterator

Public Member Functions

 string_slice ()
 string_slice (const char *str)
 string_slice (const char *str, size_t len)
 string_slice (const char *start, const char *end)
string_slice strip ()
iterator begin ()
iterator end ()
value_typefront ()
value_typeback ()
value_typeoperator[] (unsigned int i)
unsigned size () const
size_t size_bytes () const
bool empty () const
bool is_valid () const

Static Public Member Functions

static string_slice invalid ()
static string_slice tokenize (string_slice *str, string_slice delims)
static int strcmp (string_slice str1, string_slice str2)

Private Attributes

iterator m_base
unsigned int m_size

Friends

bool operator== (const string_slice &lhs, const string_slice &rhs)
bool operator!= (const string_slice &lhs, const string_slice &rhs)

Detailed Description

string_slice inherits from array_slice, specifically to refer to a substring
of a character array.
It includes some string like helpers.   

Member Typedef Documentation

◆ const_iterator

using array_slice< const char >::const_iterator
inherited

◆ iterator

using array_slice< const char >::iterator
inherited

◆ value_type

using array_slice< const char >::value_type
inherited

Constructor & Destructor Documentation

◆ string_slice() [1/4]

string_slice::string_slice ( )
inline

◆ string_slice() [2/4]

string_slice::string_slice ( const char * str)
inline

◆ string_slice() [3/4]

string_slice::string_slice ( const char * str,
size_t len )
inlineexplicit

◆ string_slice() [4/4]

string_slice::string_slice ( const char * start,
const char * end )
inlineexplicit

Member Function Documentation

◆ back()

array_slice< const char >::value_type & array_slice< const char >::back ( )
inlineinherited

◆ begin()

iterator array_slice< const char >::begin ( )
inlineinherited

Referenced by string_slice::strip().

◆ empty()

bool array_slice< const char >::empty ( ) const
inlineinherited

◆ end()

iterator array_slice< const char >::end ( )
inlineinherited

◆ front()

array_slice< const char >::value_type & array_slice< const char >::front ( )
inlineinherited

◆ invalid()

string_slice string_slice::invalid ( )
inlinestatic

References string_slice().

Referenced by get_target_version(), and tokenize().

◆ is_valid()

bool array_slice< const char >::is_valid ( ) const
inlineinherited

◆ operator[]()

array_slice< const char >::value_type & array_slice< const char >::operator[] ( unsigned int i)
inlineinherited

References i.

◆ size()

unsigned array_slice< const char >::size ( ) const
inlineinherited

◆ size_bytes()

size_t array_slice< const char >::size_bytes ( ) const
inlineinherited

◆ strcmp()

int string_slice::strcmp ( string_slice str1,
string_slice str2 )
static
Compares the string_slices STR1 and STR2 giving a lexograpical ordering.
Returns -1 if STR1 comes before STR2, 1 if STR1 comes after, and 0 if the
string_slices have the same contents.   

References i, array_slice< T >::size(), and string_slice().

◆ strip()

◆ tokenize()

string_slice string_slice::tokenize ( string_slice * str,
string_slice delims )
static
Gets the next token from STR delimited by DELIMS (deliminator not included
in returned string).

Updates STR to be the remaining string after the given token.

STR and DELIMS must both be valid string_slices.

If there aren't any of the chars in DELIM in STR (ie no more tokens in STR)
then returns the string, and updates STR to be invalid.   

References array_slice< T >::begin(), array_slice< T >::end(), gcc_assert, invalid(), array_slice< T >::is_valid(), and string_slice().

Referenced by get_clone_attr_versions().

◆ operator!=

bool operator!= ( const string_slice & lhs,
const string_slice & rhs )
friend

References string_slice().

◆ operator==

bool operator== ( const string_slice & lhs,
const string_slice & rhs )
friend

References string_slice().

Field Documentation

◆ m_base

iterator array_slice< const char >::m_base
privateinherited

◆ m_size

unsigned int array_slice< const char >::m_size
privateinherited

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