21 static std::vector<std::string> levels_str {
"Emergency",
"Alert",
"Critical",
"Error",
"Warning",
"Notice",
"Information",
"Debug"};
25 static std::vector<std::string> levels_clr {
"\033[0;30m",
"\033[0;31m",
"\033[0;32m",
"\033[0;33m",
"\033[0;34m",
"\033[0;35m",
"\033[0;36m",
"\033[0;37m" };
29 static std::string fblue =
"\033[1;34m";
30 static std::string fpurple =
"\033[1;35m";
32 #define __SHORT_FORM_OF_FILE__ \ 33 (strrchr(__FILE__,'/') \ 34 ? strrchr(__FILE__,'/')+1 \ 41 #define foutvar(var) \ 42 if (_verbosity >= var) std::cout << levels_clr[ levels_clr_map[var] ] << '[' << levels_str[var] << "] " << levels_clr[Purple] << __SHORT_FORM_OF_FILE__ << '[' << __LINE__ << "]\033[0m " << levels_clr[Blue] << __func__ << "(): \033[0m" 51 template<
typename T,
typename TChar =
char,
typename TCharTraits = std::
char_traits<TChar> >
60 : _stream(&stream), _delim(delim), _insertDelim(false)
93 ostream_type *_stream;
94 const char_type *_delim;
101 template<
typename T,
typename TChar,
typename TCharTraits>
106 #endif // _MSC_VER >= 1400 112 template<
typename T,
typename TAllocator>
class vector;
113 template<
typename T,
typename TAllocator>
class list;
114 template<
typename T,
typename TTraits,
typename TAllocator>
class set;
115 template<
typename TKey,
typename TValue,
typename TTraits,
typename TAllocator>
class map;
122 template<
typename T,
typename TAllocator>
struct is_container<
std::vector<T, TAllocator> > :
public std::true_type { };
125 template<
typename T,
typename TAllocator>
struct is_container<std::list<T, TAllocator> > :
public std::true_type { };
128 template<
typename T,
typename TTraits,
typename TAllocator>
struct is_container<std::set<T, TTraits, TAllocator> > :
public std::true_type { };
131 template<
typename TKey,
typename TValue,
typename TTraits,
typename TAllocator>
struct is_container<std::map<TKey, TValue, TTraits, TAllocator> > :
public std::true_type { };
134 template<
typename TChar>
144 template<
typename T,
typename TChar>
160 template<
typename T,
typename TTraits,
typename TAllocator>
const delimiters_values<wchar_t> delimiters<std::set<T, TTraits, TAllocator>,
wchar_t>::values = { L
"[ ", L
", ", L
" ]" };
166 template<
typename T1,
typename T2>
const delimiters_values<wchar_t> delimiters<std::pair<T1, T2>,
wchar_t>::values = { L
"(", L
", ", L
")" };
169 template<
typename T,
typename TChar =
char,
typename TCharTraits = std::
char_traits<TChar>,
typename TDelimiters = delimiters<T, TChar> >
177 : _container(&container)
183 if( delimiters_type::values.prefix != NULL )
184 stream << delimiters_type::values.prefix;
186 if( delimiters_type::values.postfix != NULL )
187 stream << delimiters_type::values.postfix;
194 template<
typename T,
typename TChar,
typename TCharTraits,
typename TDelimiters>
202 template<
typename T,
typename TChar,
typename TCharTraits>
203 typename std::enable_if<is_container<T>::value, std::basic_ostream<TChar, TCharTraits>&>::type
204 operator<<(std::basic_ostream<TChar, TCharTraits> &stream,
const T &container)
206 stream << print_container_helper<T, TChar, TCharTraits>(container);
211 template<
typename T1,
typename T2,
typename TChar,
typename TCharTraits>
212 std::basic_ostream<TChar, TCharTraits>& operator<<(std::basic_ostream<TChar, TCharTraits> &stream,
const std::pair<T1, T2> &value)
214 if(
delimiters<std::pair<T1, T2>, TChar>::values.prefix != NULL )
215 stream << delimiters<std::pair<T1, T2>, TChar>::values.
prefix;
217 stream << value.first;
219 if(
delimiters<std::pair<T1, T2>, TChar>::values.delimiter != NULL )
220 stream << delimiters<std::pair<T1, T2>, TChar>::values.
delimiter;
222 stream << value.second;
224 if(
delimiters<std::pair<T1, T2>, TChar>::values.postfix != NULL )
225 stream << delimiters<std::pair<T1, T2>, TChar>::values.
postfix;
static const delimiters_values< wchar_t > values
Definition: pretty_print.hpp:159
Definition: pretty_print.hpp:19
static const delimiters_values< char > values
Definition: pretty_print.hpp:157
Definition: pretty_print.hpp:23
Definition: pretty_print.hpp:19
Definition: pretty_print.hpp:115
Definition: pretty_print.hpp:145
void operator()(ostream_type &stream) const
Definition: pretty_print.hpp:181
static const delimiters_values< char > values
Definition: pretty_print.hpp:163
TChar char_type
Definition: pretty_print.hpp:55
static const delimiters_values< char > values
Definition: pretty_print.hpp:151
Definition: pretty_print.hpp:108
Definition: pretty_print.hpp:23
TDelimiters delimiters_type
Definition: pretty_print.hpp:173
Definition: pretty_print.hpp:112
Definition: pretty_print.hpp:23
pretty_ostream_iterator< T, TChar, TCharTraits > & operator++(int)
Definition: pretty_print.hpp:88
TChar char_type
Definition: pretty_print.hpp:137
Definition: pretty_print.hpp:19
TCharTraits traits_type
Definition: pretty_print.hpp:56
Definition: pretty_print.hpp:19
Definition: pretty_print.hpp:135
Definition: pretty_print.hpp:52
Definition: pretty_print.hpp:23
static const delimiters_values< wchar_t > values
Definition: pretty_print.hpp:153
static const delimiters_values< wchar_t > values
Definition: pretty_print.hpp:165
Definition: pretty_print.hpp:19
pretty_ostream_iterator< T, TChar, TCharTraits > & operator++()
Definition: pretty_print.hpp:83
Definition: pretty_print.hpp:113
Definition: pretty_print.hpp:19
pretty_ostream_iterator< T, TChar, TCharTraits > & operator*()
Definition: pretty_print.hpp:78
Definition: pretty_print.hpp:19
pretty_ostream_iterator(ostream_type &stream, const char_type *delim=NULL)
Definition: pretty_print.hpp:59
const TChar * postfix
Definition: pretty_print.hpp:140
Definition: pretty_print.hpp:23
Definition: pretty_print.hpp:23
print_container_helper(const T &container)
Definition: pretty_print.hpp:176
const TChar * delimiter
Definition: pretty_print.hpp:139
Definition: pretty_print.hpp:119
Definition: pretty_print.hpp:114
Definition: pretty_print.hpp:19
std::basic_ostream< TChar, TCharTraits > ostream_type
Definition: pretty_print.hpp:57
std::basic_ostream< TChar, TCharTraits > & ostream_type
Definition: pretty_print.hpp:174
pretty_ostream_iterator< T, TChar, TCharTraits > & operator=(const T &value)
Definition: pretty_print.hpp:64
TChar char_type
Definition: pretty_print.hpp:172
static const delimiters_values< TChar > values
Definition: pretty_print.hpp:147
const TChar * prefix
Definition: pretty_print.hpp:138
Definition: pretty_print.hpp:170
Definition: pretty_print.hpp:23
Definition: pretty_print.hpp:23