gem5  v20.1.0.0
Functions
str.hh File Reference
#include <cstring>
#include <limits>
#include <locale>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <vector>
#include "base/logging.hh"

Go to the source code of this file.

Functions

void eat_lead_white (std::string &s)
 
void eat_end_white (std::string &s)
 
void eat_white (std::string &s)
 
std::string to_lower (const std::string &s)
 
bool split_first (const std::string &s, std::string &lhs, std::string &rhs, char c)
 
bool split_last (const std::string &s, std::string &lhs, std::string &rhs, char c)
 
void tokenize (std::vector< std::string > &vector, const std::string &s, char token, bool ign=true)
 
template<class T >
bool to_number (const std::string &value, T &retval)
 Turn a string representation of a number, either integral or floating point, into an actual number. More...
 
bool to_bool (const std::string &value, bool &retval)
 Turn a string representation of a boolean into a boolean value. More...
 
std::string quote (const std::string &s)
 
bool startswith (const char *s, const char *prefix)
 Return true if 's' starts with the prefix string 'prefix'. More...
 
bool startswith (const std::string &s, const char *prefix)
 Return true if 's' starts with the prefix string 'prefix'. More...
 
bool startswith (const std::string &s, const std::string &prefix)
 Return true if 's' starts with the prefix string 'prefix'. More...
 
String to number helper functions for signed and unsigned

integeral type, as well as enums and floating-point types.

template<class T >
std::enable_if< std::is_integral< T >::value &&std::is_signed< T >::value, T >::type __to_number (const std::string &value)
 
template<class T >
std::enable_if< std::is_integral< T >::value &&!std::is_signed< T >::value, T >::type __to_number (const std::string &value)
 
template<class T >
std::enable_if< std::is_enum< T >::value, T >::type __to_number (const std::string &value)
 
template<class T >
std::enable_if< std::is_floating_point< T >::value, T >::type __to_number (const std::string &value)
 

Function Documentation

◆ __to_number() [1/4]

template<class T >
std::enable_if<std::is_integral<T>::value && std::is_signed<T>::value, T>::type __to_number ( const std::string &  value)

Definition at line 113 of file str.hh.

References MipsISA::r.

◆ __to_number() [2/4]

template<class T >
std::enable_if<std::is_integral<T>::value && !std::is_signed<T>::value, T>::type __to_number ( const std::string &  value)

Definition at line 127 of file str.hh.

References MipsISA::r.

◆ __to_number() [3/4]

template<class T >
std::enable_if<std::is_enum<T>::value, T>::type __to_number ( const std::string &  value)

Definition at line 138 of file str.hh.

References MipsISA::r, and type.

◆ __to_number() [4/4]

template<class T >
std::enable_if<std::is_floating_point<T>::value, T>::type __to_number ( const std::string &  value)

Definition at line 146 of file str.hh.

References MipsISA::r.

◆ eat_end_white()

void eat_end_white ( std::string &  s)
inline

Definition at line 56 of file str.hh.

References ArmISA::s.

Referenced by eat_white(), and TEST().

◆ eat_lead_white()

void eat_lead_white ( std::string &  s)
inline

Definition at line 46 of file str.hh.

References ArmISA::s.

Referenced by eat_white(), and TEST().

◆ eat_white()

void eat_white ( std::string &  s)
inline

◆ quote()

std::string quote ( const std::string &  s)
inline

Definition at line 203 of file str.hh.

References ArmISA::s.

Referenced by TEST().

◆ split_first()

bool split_first ( const std::string &  s,
std::string &  lhs,
std::string &  rhs,
char  c 
)

◆ split_last()

bool split_last ( const std::string &  s,
std::string &  lhs,
std::string &  rhs,
char  c 
)

◆ startswith() [1/3]

bool startswith ( const char *  s,
const char *  prefix 
)
inline

Return true if 's' starts with the prefix string 'prefix'.

Definition at line 224 of file str.hh.

References ArmISA::s.

Referenced by Process::absolutePath(), chdirFunc(), Process::checkPathRedirect(), normalizePath(), openatFunc(), procInfo(), System::stripSystemName(), and TEST().

◆ startswith() [2/3]

bool startswith ( const std::string &  s,
const char *  prefix 
)
inline

Return true if 's' starts with the prefix string 'prefix'.

Definition at line 234 of file str.hh.

References ArmISA::s.

◆ startswith() [3/3]

bool startswith ( const std::string &  s,
const std::string &  prefix 
)
inline

Return true if 's' starts with the prefix string 'prefix'.

Definition at line 244 of file str.hh.

References ArmISA::s.

◆ to_bool()

bool to_bool ( const std::string &  value,
bool &  retval 
)
inline

Turn a string representation of a boolean into a boolean value.

Definition at line 186 of file str.hh.

References ArmISA::s, and to_lower().

Referenced by parseParam(), sc_dt::sc_uint_bitref_r::print(), sc_dt::sc_int_bitref_r::print(), sc_dt::sc_unsigned_bitref_r::print(), sc_dt::sc_signed_bitref_r::print(), sc_dt::scfx_rep::set_slice(), and TEST().

◆ to_lower()

std::string to_lower ( const std::string &  s)
inline

Definition at line 71 of file str.hh.

References ArmISA::c, ArmISA::len, and ArmISA::s.

Referenced by TEST(), and to_bool().

◆ to_number()

template<class T >
bool to_number ( const std::string &  value,
T &  retval 
)
inline

Turn a string representation of a number, either integral or floating point, into an actual number.

Parameters
valueThe string representing the number
retvalThe resulting value
Returns
True if the parsing was successful

Definition at line 168 of file str.hh.

References panic.

◆ tokenize()

void tokenize ( std::vector< std::string > &  vector,
const std::string &  s,
char  token,
bool  ign = true 
)

Generated on Wed Sep 30 2020 14:02:18 for gem5 by doxygen 1.8.17