All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Typedefs | Enumerations | Functions
StringBuilder.h File Reference
#include <algorithm>
#include <cassert>
#include <string>
#include <sstream>
#include <stdexcept>
#include <iterator>
#include <type_traits>
#include <tuple>
#include <utility>
#include "TemplateUtils.h"

Go to the source code of this file.

Classes

struct  Aux::Impl::PrintableCategoryTag< Tag >
 
struct  Aux::Impl::IsIteratableHelper
 
struct  Aux::Impl::IsPairHelper< T >
 
struct  Aux::Impl::IsPairHelper< std::pair< T1, T2 > >
 
struct  Aux::Impl::IsTupleHelper< T >
 
struct  Aux::Impl::IsTupleHelper< std::tuple< T...> >
 
struct  Aux::Impl::IsStreamableHelper
 
struct  Aux::Impl::printTupleHelper< Tuple, I, TupleSize >
 
struct  Aux::Impl::printTupleHelper< Tuple, I, I >
 

Namespaces

 Aux
 
 Aux::Impl
 

Typedefs

using Aux::Impl::IteratableTag = PrintableCategoryTag< PrintableCategory::Iteratable >
 
using Aux::Impl::PairTag = PrintableCategoryTag< PrintableCategory::Pair >
 
using Aux::Impl::TupleTag = PrintableCategoryTag< PrintableCategory::Tuple >
 
using Aux::Impl::StreamableTag = PrintableCategoryTag< PrintableCategory::Streamable >
 
using Aux::Impl::UnprintableTag = PrintableCategoryTag< PrintableCategory::Unprintable >
 

Enumerations

enum  Aux::Impl::PrintableCategory {
  Aux::Impl::PrintableCategory::Unprintable, Aux::Impl::PrintableCategory::Iteratable, Aux::Impl::PrintableCategory::Pair, Aux::Impl::PrintableCategory::Tuple,
  Aux::Impl::PrintableCategory::Streamable
}
 

Functions

template<typename... T>
std::string Aux::toString (const T &...args)
 
template<typename... T>
std::ostream & Aux::printToStream (std::ostream &stream, const T &...args)
 
template<typename... T>
std::string Aux::toStringF (const std::string &format, const T &...args)
 
template<typename... T>
std::ostream & Aux::printToStreamF (std::ostream &stream, const std::string &format, const T &...args)
 
template<typename T >
constexpr bool Aux::Impl::isStreamable ()
 
template<typename T >
constexpr bool Aux::Impl::isPair ()
 
template<typename T >
constexpr bool Aux::Impl::isTuple ()
 
template<typename T >
constexpr bool Aux::Impl::isIteratable ()
 
template<typename T >
constexpr PrintableCategory Aux::Impl::getPrintableCategory ()
 
template<typename T , typename... Args>
void Aux::Impl::printToStream (std::ostream &stream, const T &, const Args &...)
 
void Aux::Impl::printToStream (std::ostream &)
 
template<typename T >
void Aux::Impl::printToStreamTagged (std::ostream &stream, const T &, IteratableTag)
 
template<typename T , typename... Args>
void Aux::Impl::printToStream (std::ostream &stream, const T &arg, const Args &...args)
 
std::tuple
< std::string::const_iterator,
bool > 
Aux::Impl::printFormatPartToStream (std::ostream &stream, std::string::const_iterator begin, std::string::const_iterator end) -> std::tuple< std::string::const_iterator, bool >
 Write the formatstring until the first occurance of "%s" to stream, '%' will be replaced by ''. More...
 
void Aux::Impl::printToStreamF (std::ostream &stream, std::string::const_iterator format_begin, std::string::const_iterator format_end)
 
template<typename T , typename... Args>
void Aux::Impl::printToStreamF (std::ostream &stream, std::string::const_iterator format_begin, std::string::const_iterator format_end, const T &arg, const Args &...args)