12 #ifndef _H_SST_CORE_STRINGIZE 
   13 #define _H_SST_CORE_STRINGIZE 
   22 inline std::string to_string(
double val) {
 
   24     sprintf(buffer, 
"%f", val);
 
   26     std::string buffer_str(buffer);
 
   30 inline std::string to_string(
float val) {
 
   32     sprintf(buffer, 
"%f", val);
 
   34     std::string buffer_str(buffer);
 
   38 inline std::string to_string(int32_t val) {
 
   40     sprintf(buffer, 
"%" PRId32, val);
 
   42     std::string buffer_str(buffer);
 
   46 inline std::string to_string(int64_t val) {
 
   48     sprintf(buffer, 
"%" PRId64, val);
 
   50     std::string buffer_str(buffer);
 
   54 inline std::string to_string(uint32_t val) {
 
   56     sprintf(buffer, 
"%" PRIu32, val);
 
   58     std::string buffer_str(buffer);
 
   62 inline std::string to_string(uint64_t val) {
 
   64     sprintf(buffer, 
"%" PRIu64, val);
 
   66     std::string buffer_str(buffer);
 
   71 inline bool strcasecmp(
const std::string& s1, 
const std::string& s2) {
 
   72     return !::strcasecmp(s1.c_str(), s2.c_str());
 
   75 inline void to_lower(std::string& s) {
 
   76     for ( 
size_t i = 0 ; i < s.size() ; i++ ) {
 
   77         s[i] = std::tolower(s[i]);
 
   82 inline void trim(std::string& s) {
 
   83     auto start = s.find_first_not_of(
" \t\n\r\v\f");
 
   85         s.replace(s.begin(), s.begin() + (start), 
"");
 
   87     auto end = s.find_last_not_of(
" \t\n\r\v\f");
 
   88     if ( end != s.size() -1 ) {
 
   89         s.replace(s.begin() + end + 1, s.end(), 
"");
 
   96     typedef std::string::const_iterator iter;
 
   97     const std::string delim;
 
  104     void operator()(iter &first, iter last, std::string& token) {
 
  108         while ( first != last && delim.find(*first) != std::string::npos )
 
  111         while ( first != last && delim.find(*first) == std::string::npos )
 
  120     typedef std::string::const_iterator iter;
 
  125     escaped_list_separator(
const std::string& esc=
"\\", 
const std::string& sep=
",", 
const std::string& quote=
"\"")
 
  126         : e(esc), q(quote), s(sep) { }
 
  132     void operator()(iter &first, iter last, std::string& token) {
 
  135         bool inside_quotes = 
false;
 
  136         bool in_escape = 
false;
 
  137         while ( first != last ) {
 
  143             } 
else if ( s.find(c) != std::string::npos && !inside_quotes ) {
 
  146             } 
else if ( q.find(c) != std::string::npos ) {
 
  147                 inside_quotes = !inside_quotes;
 
  148             } 
else if ( e.find(c) != std::string::npos ) {
 
  160 template< 
typename TokenizerFunc = 
char_delimiter >
 
  163     template <
typename Func>
 
  165         : 
public std::iterator< std::input_iterator_tag, std::string >
 
  168         std::string::const_iterator first;
 
  169         std::string::const_iterator last;
 
  172         explicit token_iter(Func& f_, std::string::const_iterator& first_, std::string::const_iterator& last_)
 
  173             : f(f_), first(first_), last(last_)
 
  175             f(first, last, token);
 
  177         token_iter& operator++() { f(first, last, token); 
return *
this; }
 
  178         token_iter  operator++(
int) {token_iter retval = *
this; ++(*this); 
return retval;}
 
  179         bool operator==(token_iter other)
 const { 
return (first == other.first) && (last == other.last) && (token == other.token); }
 
  180         bool operator!=(token_iter other)
 const { 
return !(*
this == other); }
 
  181         const std::string& operator*()
 const { 
return token; }
 
  182         const std::string& operator->()
 const { 
return token; }
 
  187     typedef token_iter<TokenizerFunc> iter;
 
  189     typedef iter iterator;
 
  190     typedef iter const_iterator;
 
  191     typedef std::string value_type;
 
  193     iter begin() { 
return iter(f, first, last); }
 
  194     iter end() { 
return iter(f, last, last); }
 
  196     Tokenizer(
const std::string& s, 
const TokenizerFunc& f = TokenizerFunc())
 
  197         : first(s.begin()), last(s.end()), f(f) { }
 
  200     std::string::const_iterator first, last;
 
Definition: stringize.h:119
 
void operator()(iter &first, iter last, std::string &token)
Definition: stringize.h:132
 
Definition: stringize.h:161
 
Definition: stringize.h:95
 
void operator()(iter &first, iter last, std::string &token)
Definition: stringize.h:104