E-MailRelay
Classes | Namespaces | Functions
gstr.cpp File Reference
#include "gdef.h"
#include "gstr.h"
#include "gassert.h"
#include <algorithm>
#include <type_traits>
#include <stdexcept>
#include <iterator>
#include <limits>
#include <functional>
#include <iomanip>
#include <string>
#include <sstream>
#include <cstring>
#include <cerrno>

Go to the source code of this file.

Classes

struct  G::StrImp::PrintableAppender< Tchar >
 A character appender used by G::Str. More...
 
struct  G::StrImp::InPlaceBackInserter
 A character appender used by G::Str. More...
 
struct  G::StrImp::Joiner< T >
 A sub-string joiner used by G::Str. More...
 

Namespaces

namespace  G
 Low-level classes.
 
namespace  G::StrImp
 An implementation namespace for G::Str.
 

Functions

bool G::StrImp::isDigit (char c)
 
bool G::StrImp::isHex (char c)
 
bool G::StrImp::isPrintableAscii (char c)
 
char G::StrImp::toLower (char c)
 
char G::StrImp::toUpper (char c)
 
unsigned short G::StrImp::toUShort (const std::string &s, bool &overflow, bool &invalid)
 
unsigned long G::StrImp::toULong (const std::string &s, bool &overflow, bool &invalid)
 
unsigned long G::StrImp::toULongHex (const std::string &s, bool limited)
 
unsigned int G::StrImp::toUInt (const std::string &s, bool &overflow, bool &invalid)
 
short G::StrImp::toShort (const std::string &s, bool &overflow, bool &invalid)
 
long G::StrImp::toLong (const std::string &s, bool &overflow, bool &invalid)
 
int G::StrImp::toInt (const std::string &s, bool &overflow, bool &invalid)
 
void G::StrImp::strncpy (char *, const char *, std::size_t) noexcept
 
void G::StrImp::escape (std::string &s, char c_escape, const char *specials_in, const char *specials_out, bool with_nul)
 
void G::StrImp::readLineFrom (std::istream &stream, const std::string &eol, std::string &line)
 
template<typename S , typename T , typename SV >
void G::StrImp::splitIntoTokens (const S &in, T &out, const SV &ws)
 
template<typename S , typename T >
void G::StrImp::splitIntoTokens (const S &in, T &out, const S &ws, typename S::value_type esc)
 
template<typename T >
void G::StrImp::splitIntoFields (const std::string &in, T &out, string_view ws)
 
template<typename T >
void G::StrImp::splitIntoFields (const std::string &in_in, T &out, string_view ws, char escape, bool remove_escapes)
 
template<typename T1 , typename T2 , typename P >
bool G::StrImp::equal4 (T1 p1, T1 end1, T2 p2, T2 end2, P p)
 
bool G::StrImp::ilessc (char c1, char c2)
 
bool G::StrImp::iless (const std::string &a, const std::string &b)
 
bool G::StrImp::imatchc (char c1, char c2)
 
bool G::StrImp::imatch (const std::string &a, const std::string &b)
 
bool G::StrImp::match (const std::string &a, const std::string &b, bool ignore_case)
 
template<typename T , typename V >
G::StrImp::unique (T in, T end, V repeat, V replacement)
 
bool G::StrImp::inList (StringArray::const_iterator begin, StringArray::const_iterator end, const std::string &s, bool i)
 
bool G::StrImp::notInList (StringArray::const_iterator begin, StringArray::const_iterator end, const std::string &s, bool i)
 
void G::StrImp::join (const std::string &, std::string &, const std::string &)
 
template<typename Tout >
std::size_t G::StrImp::outputHex (Tout out, char c)
 
template<typename Tout >
std::size_t G::StrImp::outputHex (Tout out, wchar_t c)
 
template<typename Tout , typename Tchar >
std::size_t G::StrImp::outputPrintable (Tout, Tchar, Tchar, char, bool)