HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Macros | Functions | Variables
hprint.cpp File Reference

Routines related to displaying various things, and writing them to console and files. Nicer than the standard C++ streams. More...

#include "hyper.h"

Classes

struct  hr::hstream
 
struct  hr::hstream_exception
 
struct  hr::fhstream
 
struct  hr::shstream
 
struct  hr::detail::seq< Is >
 
struct  hr::detail::gen_seq< N, Is >
 
struct  hr::detail::gen_seq< 0, Is... >
 
struct  hr::comma_printer
 
struct  hr::logger
 
struct  hr::indenter
 
struct  hr::indenter_finish
 

Namespaces

 hr
 

Macros

#define DF_INIT   1
 
#define DF_MSG   2
 
#define DF_WARN   4
 
#define DF_ERROR   8
 
#define DF_STEAM   16
 
#define DF_GRAPH   32
 
#define DF_TURN   64
 
#define DF_FIELD   128
 
#define DF_GEOM   256
 
#define DF_MEMORY   512
 
#define DF_TIME   1024
 
#define DF_GP   2048
 
#define DF_POLY   4096
 
#define DF_LOG   8192
 
#define DF_KEYS   "imwesxufgbtopl"
 
#define DEBB(r, x)   { if(debugflags & (r)) { println_log x; } }
 
#define DEBB0(r, x)   { if(debugflags & (r)) { print_log x; } }
 
#define DEBBI(r, x)   { if(debugflags & (r)) { println_log x; } } indenter_finish _debbi(debugflags & (r));
 

Functions

EX string hr::its (int i)
 
EX string hr::itsh8 (int i)
 
EX string hr::fts (ld x, int prec IS(6))
 
EX string hr::index_pointer (void *v)
 
string hr::ONOFF (bool b)
 
template<class T >
void hr::hwrite_raw (hstream &hs, const T &c)
 
template<class T >
void hr::hread_raw (hstream &hs, T &c)
 
template<class T , typename = typename std::enable_if<std::is_integral<T>::value || std::is_enum<T>::value>::type>
void hr::hwrite (hstream &hs, const T &c)
 
template<class T , typename = typename std::enable_if<std::is_integral<T>::value || std::is_enum<T>::value>::type>
void hr::hread (hstream &hs, T &c)
 
void hr::hwrite (hstream &hs, const string &s)
 
void hr::hread (hstream &hs, string &s)
 
void hr::hwrite (hstream &hs, const ld &h)
 
void hr::hread (hstream &hs, ld &h)
 
template<class T , size_t X>
void hr::hwrite (hstream &hs, const array< T, X > &a)
 
template<class T , size_t X>
void hr::hread (hstream &hs, array< T, X > &a)
 
void hr::hread (hstream &hs, hyperpoint &h)
 
void hr::hwrite (hstream &hs, hyperpoint h)
 
template<class T >
void hr::hwrite (hstream &hs, const vector< T > &a)
 
template<class T >
void hr::hread (hstream &hs, vector< T > &a)
 
template<class T , class U >
void hr::hwrite (hstream &hs, const map< T, U > &a)
 
template<class T , class U >
void hr::hread (hstream &hs, map< T, U > &a)
 
template<class C , class C1 , class... CS>
void hr::hwrite (hstream &hs, const C &c, const C1 &c1, const CS &... cs)
 
template<class C , class C1 , class... CS>
void hr::hread (hstream &hs, C &c, C1 &c1, CS &... cs)
 
void hr::print (hstream &hs)
 
template<class... CS>
string hr::sprint (const CS &... cs)
 
template<class C , class C1 , class... CS>
void hr::print (hstream &hs, const C &c, const C1 &c1, const CS &... cs)
 
template<class... CS>
void hr::println (hstream &hs, const CS &... cs)
 
string hr::spaced (int i)
 
string hr::spaced (color_t col)
 
string hr::spaced (const string &s)
 
string hr::spaced (ld x)
 
template<class T >
string hr::spaced_of (T a[], int q)
 
template<class T , int i>
string hr::spaced (const array< T, i > &a)
 
template<class C , class C1 , class... CS>
string hr::spaced (const C &c, const C1 &c1, const CS &... cs)
 
bool hr::scan (fhstream &hs, int &)
 
bool hr::scan (fhstream &hs, ld &)
 
bool hr::scan (fhstream &hs, string &)
 
bool hr::scan (fhstream &hs, color_t &c)
 
template<class C , class C1 , class... CS>
bool hr::scan (fhstream &hs, C &c, C1 &c1, CS &... cs)
 
string hr::scanline (fhstream &hs)
 
template<class T >
hr::scan (fhstream &hs)
 
template<typename T , typename F , int... Is>
void hr::detail::for_each (T &&t, F f, seq< Is... >)
 
template<typename... Ts, typename F >
void hr::for_each_in_tuple (std::tuple< Ts... > const &t, F f)
 
void hr::print (hstream &hs, const string &s)
 
void hr::print (hstream &hs, int i)
 
void hr::print (hstream &hs, ld x)
 
void hr::print (hstream &hs, color_t col)
 
template<class T >
void hr::print (hstream &hs, const walker< T > &w)
 
template<class T , size_t X>
void hr::print (hstream &hs, const array< T, X > &a)
 
template<class T >
void hr::print (hstream &hs, const vector< T > &a)
 
void hr::print (hstream &hs, const hyperpoint h)
 
void hr::print (hstream &hs, const transmatrix T)
 
template<class T , class U >
void hr::print (hstream &hs, const pair< T, U > &t)
 
template<class... T>
void hr::print (hstream &hs, const tuple< T... > &t)
 
void hr::special_log (char c)
 
template<class... T>
void hr::println_log (T... t)
 
template<class... T>
void hr::print_log (T... t)
 
string hr::format (const char *fmt,...)
 
void hr::print (hstream &hs, heptagon *h)
 
void hr::print (hstream &hs, cell *h)
 
void hr::print (hstream &hs, hrmap *h)
 
void hr::print (hstream &hs, cellwalker cw)
 
EX string hr::fts_fixed (ld x, int prec IS(6))
 
EX string hr::cts (char c)
 
EX string hr::llts (long long i)
 
EX string hr::itsh (unsigned int i)
 
EX string hr::itsh (int i)
 
EX string hr::itsh2 (int i)
 
EX string hr::itsh (unsigned long long i)
 
EX ld hr::kz (ld x)
 
EX hyperpoint hr::kz (hyperpoint h)
 
EX transmatrix hr::kz (transmatrix h)
 
EX string hr::pick123 ()
 
EX string hr::pick12 ()
 
template<class T >
string hr::serialize (const T &data)
 
template<class T >
hr::deserialize (const string &s)
 
EX string hr::as_cstring (string o)
 

Variables

EX FILE * hr::debugfile
 
EX int hr::debugflags = DF_INIT | DF_ERROR | DF_WARN | DF_MSG | DF_TIME | DF_LOG
 
EX string hr::s0
 
map< void *, int > hr::pointer_indices
 
logger hr::hlog
 

Detailed Description

Routines related to displaying various things, and writing them to console and files. Nicer than the standard C++ streams.