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 >
T | 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)