icu::StringPiece Class Reference

A string-like object that points to a sized piece of memory. More...

#include <stringpiece.h>

Inheritance diagram for icu::StringPiece:
icu::UMemory

Public Member Functions

 StringPiece ()
 Default constructor, creates an empty StringPiece.
 StringPiece (const char *str)
 Constructs from a NUL-terminated const char * pointer.
 StringPiece (const std::string &str)
 Constructs from a std::string.
 StringPiece (const char *offset, int32_t len)
 Constructs from a const char * pointer and a specified length.
 StringPiece (const StringPiece &x, int32_t pos)
 Substring of another StringPiece.
 StringPiece (const StringPiece &x, int32_t pos, int32_t len)
 Substring of another StringPiece.
const char * data () const
 Returns the string pointer.
int32_t size () const
 Returns the string length.
int32_t length () const
 Returns the string length.
UBool empty () const
 Returns whether the string is empty.
void clear ()
 Sets to an empty string.
void set (const char *xdata, int32_t len)
 Reset the stringpiece to refer to new data.
void set (const char *str)
 Reset the stringpiece to refer to new data.
void remove_prefix (int32_t n)
 Removes the first n string units.
void remove_suffix (int32_t n)
 Removes the last n string units.
StringPiece substr (int32_t pos, int32_t len=npos) const
 Returns a substring of this StringPiece.

Static Public Attributes

static const int32_t npos = 0x7fffffff
 Maximum integer, used as a default value for substring methods.

Detailed Description

A string-like object that points to a sized piece of memory.

We provide non-explicit singleton constructors so users can pass in a "const char*" or a "string" wherever a "StringPiece" is expected.

Functions or methods may use const StringPiece& parameters to accept either a "const char*" or a "string" value that will be implicitly converted to a StringPiece.

Systematic usage of StringPiece is encouraged as it will reduce unnecessary conversions from "const char*" to "string" and back again.

Stable:
ICU 4.2

Definition at line 52 of file stringpiece.h.


Constructor & Destructor Documentation

icu::StringPiece::StringPiece (  )  [inline]

Default constructor, creates an empty StringPiece.

Stable:
ICU 4.2

Definition at line 62 of file stringpiece.h.

icu::StringPiece::StringPiece ( const char *  str  ) 

Constructs from a NUL-terminated const char * pointer.

Parameters:
str a NUL-terminated const char * pointer
Stable:
ICU 4.2
icu::StringPiece::StringPiece ( const std::string &  str  )  [inline]

Constructs from a std::string.

Stable:
ICU 4.2

Definition at line 74 of file stringpiece.h.

icu::StringPiece::StringPiece ( const char *  offset,
int32_t  len 
) [inline]

Constructs from a const char * pointer and a specified length.

Parameters:
offset a const char * pointer (need not be terminated)
len the length of the string; must be non-negative
Stable:
ICU 4.2

Definition at line 83 of file stringpiece.h.

icu::StringPiece::StringPiece ( const StringPiece x,
int32_t  pos 
)

Substring of another StringPiece.

Parameters:
x the other StringPiece
pos start position in x; must be non-negative and <= x.length().
Stable:
ICU 4.2
icu::StringPiece::StringPiece ( const StringPiece x,
int32_t  pos,
int32_t  len 
)

Substring of another StringPiece.

Parameters:
x the other StringPiece
pos start position in x; must be non-negative and <= x.length().
len length of the substring; must be non-negative and will be pinned to at most x.length() - pos.
Stable:
ICU 4.2

Member Function Documentation

void icu::StringPiece::clear (  )  [inline]

Sets to an empty string.

Stable:
ICU 4.2

Definition at line 135 of file stringpiece.h.

References NULL.

const char* icu::StringPiece::data (  )  const [inline]

Returns the string pointer.

May be NULL if it is empty.

data() may return a pointer to a buffer with embedded NULs, and the returned buffer may or may not be null terminated. Therefore it is typically a mistake to pass data() to a routine that expects a NUL terminated string.

Returns:
the string pointer
Stable:
ICU 4.2

Definition at line 111 of file stringpiece.h.

UBool icu::StringPiece::empty (  )  const [inline]

Returns whether the string is empty.

Returns:
TRUE if the string is empty
Stable:
ICU 4.2

Definition at line 129 of file stringpiece.h.

int32_t icu::StringPiece::length ( void   )  const [inline]

Returns the string length.

Same as size().

Returns:
the string length
Stable:
ICU 4.2

Definition at line 123 of file stringpiece.h.

void icu::StringPiece::remove_prefix ( int32_t  n  )  [inline]

Removes the first n string units.

Parameters:
n prefix length, must be non-negative and <=length()
Stable:
ICU 4.2

Definition at line 157 of file stringpiece.h.

void icu::StringPiece::remove_suffix ( int32_t  n  )  [inline]

Removes the last n string units.

Parameters:
n suffix length, must be non-negative and <=length()
Stable:
ICU 4.2

Definition at line 172 of file stringpiece.h.

void icu::StringPiece::set ( const char *  str  ) 

Reset the stringpiece to refer to new data.

Parameters:
str a pointer to a NUL-terminated string.
Stable:
ICU 4.8
void icu::StringPiece::set ( const char *  xdata,
int32_t  len 
) [inline]

Reset the stringpiece to refer to new data.

Parameters:
xdata pointer the new string data. Need not be nul terminated.
len the length of the new data
Stable:
ICU 4.8

Definition at line 143 of file stringpiece.h.

int32_t icu::StringPiece::size (  )  const [inline]

Returns the string length.

Same as length().

Returns:
the string length
Stable:
ICU 4.2

Definition at line 117 of file stringpiece.h.

StringPiece icu::StringPiece::substr ( int32_t  pos,
int32_t  len = npos 
) const [inline]

Returns a substring of this StringPiece.

Parameters:
pos start position; must be non-negative and <= length().
len length of the substring; must be non-negative and will be pinned to at most length() - pos.
Returns:
the substring StringPiece
Stable:
ICU 4.2

Definition at line 196 of file stringpiece.h.


Field Documentation

const int32_t icu::StringPiece::npos = 0x7fffffff [static]

Maximum integer, used as a default value for substring methods.

Stable:
ICU 4.2

Definition at line 186 of file stringpiece.h.


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

Generated on 5 Feb 2019 for ICU 50.1.2 by  doxygen 1.6.1