Base module

util

Miscellaneous string, parsing, and version utilities.

util

Miscellaneous string, parsing, and version utilities.

Classes

NameDescription
VersionSemantic version number with major, minor, and patch fields.

Functions

ReturnNameDescription
std::stringformatPrintf-style string formatting for POD types.
voidtoUnderscoreReplaces all non-alphanumeric characters in str with underscores and converts to lowercase.
boolisNumberReturns true if str consists entirely of digit characters.
boolendsWithReturns true if str ends with the given suffix.
voidremoveSpecialCharactersReplaces non-alphanumeric characters. Removes all non-alphanumeric characters from str in place.
voidreplaceSpecialCharactersReplaces all non-alphanumeric characters in str with with in place.
booltryParseHexAttempts to parse a hex string into an unsigned integer.
unsignedparseHexParses a hex string into an unsigned integer.
std::stringdumpbinFormats the binary contents of data as a hex+ASCII dump string.
boolcompareVersionCompares two dot-separated version strings.
boolmatchNodesChecks whether node matches xnode by splitting both on delim and comparing element-wise.
boolmatchNodesChecks whether params matches xparams element-wise.
std::stringmemAddressReturns the memory address of ptr as a hex string (e.g. "0x7f3a2b10c0").
std::stringitostrConverts an integer (or any stream-insertable type) to its string representation.
TstrtoiParses a string into integer type T using std::istringstream. Returns 0 if parsing fails. Ensure T has sufficient range for the value.
uint32_trandomNumberGenerates a 31-bit pseudo random number using the internal Random instance.
std::stringrandomStringGenerates a random alphanumeric string of the given length.
std::stringrandomBinaryStringGenerates a random binary string of the given byte length.
voidsplitSplits str on the delimiter string and appends tokens to elems.
std::vector< std::string >splitSplits str on the delimiter string and returns the tokens as a vector.
voidsplitSplits str on the delimiter character and appends tokens to elems.
std::vector< std::string >splitSplits str on the delimiter character and returns the tokens as a vector.
S &replaceInPlaceReplace all occurrences of from in str with to, starting at position start. Modifies and returns str in place. from must not be empty.
S &replaceInPlaceReplace all occurrences of from in str with to, starting at position start. C-string overload. Modifies and returns str in place.
SreplaceReplace all occurences of from (which must not be the empty string) in str with to, starting at position start.
SreplaceReturns a copy of str with all occurrences of from replaced by to (C-string overload).
StrimLeftReturns a copy of str with all leading whitespace removed.
S &trimLeftInPlaceRemoves all leading whitespace in str.
StrimRightReturns a copy of str with all trailing whitespace removed.
S &trimRightInPlaceRemoves all trailing whitespace in str.
StrimReturns a copy of str with all leading and trailing whitespace removed.
S &trimInPlaceRemoves all leading and trailing whitespace in str.
StoUpperReturns a copy of str containing all upper-case characters.
S &toUpperInPlaceReplaces all characters in str with their upper-case counterparts.
StoLowerReturns a copy of str containing all lower-case characters.
S &toLowerInPlaceReplaces all characters in str with their lower-case counterparts.
inticompare inlineCase-insensitive string comparison (locale-independent, ASCII only).
std::streamsizecopyStreamUnbufferedCopies all bytes from istr to ostr one byte at a time (no internal buffer).
std::streamsizecopyStreamCopies all bytes from istr to ostr using an internal buffer.
std::streamsizecopyToStringReads all bytes from istr and appends them to str.
voidclearList inlineDelete all elements from a list of pointers.
voidclearDeque inlineDelete all elements from a deque of pointers.
voidclearVector inlineDelete all elements from a vector of pointers.
voidclearMap inlineDelete all associated values from a map (not the key elements).

format

std::string format(const char * fmt, ...)

Printf-style string formatting for POD types.

Parameters

  • fmt printf format string.

  • ... Format arguments.

Returns

Formatted string.


toUnderscore

void toUnderscore(std::string & str)

Replaces all non-alphanumeric characters in str with underscores and converts to lowercase.

Parameters

  • str String to transform in place.

isNumber

bool isNumber(std::string_view str)

Returns true if str consists entirely of digit characters.

Parameters

  • str String to test.

Returns

true if every character in str is a decimal digit.


endsWith

bool endsWith(std::string_view str, std::string_view suffix)

Returns true if str ends with the given suffix.

Parameters

  • str String to test.

  • suffix Suffix to look for.

Returns

true if str ends with suffix.


removeSpecialCharacters

void removeSpecialCharacters(std::string & str, bool allowSpaces)

Replaces non-alphanumeric characters. Removes all non-alphanumeric characters from str in place.

Parameters

  • str String to modify.

  • allowSpaces If true, ASCII spaces are preserved.


replaceSpecialCharacters

void replaceSpecialCharacters(std::string & str, char with, bool allowSpaces)

Replaces all non-alphanumeric characters in str with with in place.

Parameters

  • str String to modify.

  • with Replacement character (default: '_').

  • allowSpaces If true, ASCII spaces are preserved rather than replaced.


tryParseHex

bool tryParseHex(std::string_view s, unsigned & value)

Attempts to parse a hex string into an unsigned integer.

Parameters

  • s Hex string (with or without 0x prefix).

  • value Output: parsed value on success.

Returns

true if parsing succeeded, false otherwise.


parseHex

unsigned parseHex(std::string_view s)

Parses a hex string into an unsigned integer.

Parameters

  • s Hex string (with or without 0x prefix).

Returns

Parsed value.

Exceptions

  • std::invalid_argument if the string is not valid hex.

dumpbin

std::string dumpbin(const char * data, size_t len)

Formats the binary contents of data as a hex+ASCII dump string.

Parameters

  • data Pointer to the buffer to dump.

  • len Number of bytes to dump.

Returns

Multi-line hex dump string.


compareVersion

bool compareVersion(std::string_view l, std::string_view r)

Compares two dot-separated version strings.

Parameters

  • l Left (local) version string.

  • r Right (remote) version string.

Returns

true if l is strictly greater than r, false if l is equal or less.


matchNodes

bool matchNodes(std::string_view node, std::string_view xnode, std::string_view delim)

Checks whether node matches xnode by splitting both on delim and comparing element-wise.

Parameters

  • node Node list string to test.

  • xnode Expected node list pattern.

  • delim Delimiter used to split both strings (default: "\r\n").

Returns

true if all elements of node match the corresponding elements of xnode.


matchNodes

bool matchNodes(const std::vector< std::string > & params, const std::vector< std::string > & xparams)

Checks whether params matches xparams element-wise.

Parameters

  • params Parameter list to test.

  • xparams Expected parameter list.

Returns

true if every element of params matches the corresponding element of xparams.


memAddress

std::string memAddress(const void * ptr)

Returns the memory address of ptr as a hex string (e.g. "0x7f3a2b10c0").

Parameters

  • ptr Pointer whose address to format.

Returns

Hex string representation of the pointer value.


itostr

template<typename T> std::string itostr(const T & t)

Converts an integer (or any stream-insertable type) to its string representation.

Parameters

  • T Type to convert; must support operator<< on std::ostream.

Parameters

  • t Value to convert.

Returns

String representation of t.


strtoi

template<typename T> T strtoi(std::string_view s)

Parses a string into integer type T using std::istringstream. Returns 0 if parsing fails. Ensure T has sufficient range for the value.

Parameters

  • T Target integer type.

Parameters

  • s String to parse.

Returns

Parsed value, or 0 on failure.


randomNumber

uint32_t randomNumber()

Generates a 31-bit pseudo random number using the internal Random instance.

Returns

Pseudo random uint32_t value.


randomString

std::string randomString(int size)

Generates a random alphanumeric string of the given length.

Parameters

  • size Number of characters to generate.

Returns

Random string of length size.


randomBinaryString

std::string randomBinaryString(int size, bool doBase64)

Generates a random binary string of the given byte length.

Parameters

  • size Number of random bytes to generate.

  • doBase64 If true, returns the bytes as a base64-encoded string.

Returns

Random binary string, optionally base64-encoded.


split

void split(std::string_view str, std::string_view delim, std::vector< std::string > & elems, int limit)

Splits str on the delimiter string and appends tokens to elems.

Parameters

  • str String to split.

  • delim Delimiter string.

  • elems Output vector; tokens are appended to it.

  • limit Maximum number of splits (-1 for unlimited).


split

std::vector< std::string > split(std::string_view str, std::string_view delim, int limit)

Splits str on the delimiter string and returns the tokens as a vector.

Parameters

  • str String to split.

  • delim Delimiter string.

  • limit Maximum number of splits (-1 for unlimited).

Returns

Vector of token strings.


split

void split(std::string_view str, char delim, std::vector< std::string > & elems, int limit)

Splits str on the delimiter character and appends tokens to elems.

Parameters

  • str String to split.

  • delim Delimiter character.

  • elems Output vector; tokens are appended to it.

  • limit Maximum number of splits (-1 for unlimited).


split

std::vector< std::string > split(std::string_view str, char delim, int limit)

Splits str on the delimiter character and returns the tokens as a vector.

Parameters

  • str String to split.

  • delim Delimiter character.

  • limit Maximum number of splits (-1 for unlimited).

Returns

Vector of token strings.


replaceInPlace

template<class S> S & replaceInPlace(S & str, const S & from, const S & to, typename S::size_type start)

Replace all occurrences of from in str with to, starting at position start. Modifies and returns str in place. from must not be empty.


replaceInPlace

template<class S> S & replaceInPlace(S & str, const typename S::value_type * from, const typename S::value_type * to, typename S::size_type start)

Replace all occurrences of from in str with to, starting at position start. C-string overload. Modifies and returns str in place.


replace

template<class S> S replace(const S & str, const S & from, const S & to, typename S::size_type start)

Replace all occurences of from (which must not be the empty string) in str with to, starting at position start.


replace

template<class S> S replace(const S & str, const typename S::value_type * from, const typename S::value_type * to, typename S::size_type start)

Returns a copy of str with all occurrences of from replaced by to (C-string overload).

Parameters

  • str Source string.

  • from Substring to search for; must not be empty.

  • to Replacement string.

  • start Position in str at which to begin searching (default: 0).

Returns

New string with all replacements applied.


trimLeft

template<class S> S trimLeft(const S & str)

Returns a copy of str with all leading whitespace removed.


trimLeftInPlace

template<class S> S & trimLeftInPlace(S & str)

Removes all leading whitespace in str.


trimRight

template<class S> S trimRight(const S & str)

Returns a copy of str with all trailing whitespace removed.


trimRightInPlace

template<class S> S & trimRightInPlace(S & str)

Removes all trailing whitespace in str.


trim

template<class S> S trim(const S & str)

Returns a copy of str with all leading and trailing whitespace removed.


trimInPlace

template<class S> S & trimInPlace(S & str)

Removes all leading and trailing whitespace in str.


toUpper

template<class S> S toUpper(const S & str)

Returns a copy of str containing all upper-case characters.


toUpperInPlace

template<class S> S & toUpperInPlace(S & str)

Replaces all characters in str with their upper-case counterparts.


toLower

template<class S> S toLower(const S & str)

Returns a copy of str containing all lower-case characters.


toLowerInPlace

template<class S> S & toLowerInPlace(S & str)

Replaces all characters in str with their lower-case counterparts.


icompare

inline

inline int icompare(std::string_view a, std::string_view b)

Case-insensitive string comparison (locale-independent, ASCII only).

Parameters

  • a First string.

  • b Second string.

Returns

Negative if a < b, zero if a == b, positive if a > b.


copyStreamUnbuffered

std::streamsize copyStreamUnbuffered(std::istream & istr, std::ostream & ostr)

Copies all bytes from istr to ostr one byte at a time (no internal buffer).

Parameters

  • istr Source stream.

  • ostr Destination stream.

Returns

Total number of bytes copied.


copyStream

std::streamsize copyStream(std::istream & istr, std::ostream & ostr, size_t bufferSize)

Copies all bytes from istr to ostr using an internal buffer.

Parameters

  • istr Source stream.

  • ostr Destination stream.

  • bufferSize Internal buffer size in bytes (default: 8192).

Returns

Total number of bytes copied.


copyToString

std::streamsize copyToString(std::istream & istr, std::string & str, size_t bufferSize)

Reads all bytes from istr and appends them to str.

Parameters

  • istr Source stream.

  • str Output string to append data to.

  • bufferSize Internal buffer size in bytes (default: 8192).

Returns

Total number of bytes read.


clearList

inline

template<typename Val> inline void clearList(std::list< Val * > & L)

Delete all elements from a list of pointers.


clearDeque

inline

template<typename Val> inline void clearDeque(std::deque< Val * > & D)

Delete all elements from a deque of pointers.


clearVector

inline

template<typename Val> inline void clearVector(std::vector< Val * > & V)

Delete all elements from a vector of pointers.


clearMap

inline

template<typename Key, typename Val> inline void clearMap(std::map< Key, Val * > & M)

Delete all associated values from a map (not the key elements).