38#ifndef BLOCXX_FORMAT_HPP
39#define BLOCXX_FORMAT_HPP
40#include "blocxx/BLOCXX_config.h"
55 const char*
c_str()
const;
58 Format(
const char* ca,
const A& a);
59 template<
typename A,
typename B>
60 Format(
const char* ca,
const A& a,
const B& b);
61 template<
typename A,
typename B,
typename C>
62 Format(
const char* ca,
const A& a,
const B& b,
const C& c);
63 template<
typename A,
typename B,
typename C,
typename D>
64 Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d);
65 template<
typename A,
typename B,
typename C,
typename D,
typename E>
66 Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e);
67 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F>
68 Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f);
69 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G>
70 Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g);
71 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G,
typename H>
72 Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h);
73 template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G,
typename H,
typename I>
74 Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h,
const I& i);
82 template<
typename T>
void put(
const T& t);
86 void put (
unsigned char t);
88 void put (
unsigned short t);
90 void put (
unsigned int t);
92 void put (
unsigned long t);
93 void put (
long long t);
94 void put (
unsigned long long t);
96 friend BLOCXX_COMMON_API std::ostream&
operator<<(std::ostream& os,
const Format& f);
115 case '1':
put(a);
break;
119template<
typename A,
typename B>
127 case '1':
put(a);
break;
128 case '2':
put(b);
break;
132template<
typename A,
typename B,
typename C>
140 case '1':
put(a);
break;
141 case '2':
put(b);
break;
142 case '3':
put(c);
break;
146template<
typename A,
typename B,
typename C,
typename D>
154 case '1':
put(a);
break;
155 case '2':
put(b);
break;
156 case '3':
put(c);
break;
157 case '4':
put(d);
break;
161template<
typename A,
typename B,
typename C,
typename D,
typename E>
169 case '1':
put(a);
break;
170 case '2':
put(b);
break;
171 case '3':
put(c);
break;
172 case '4':
put(d);
break;
173 case '5':
put(e);
break;
177template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F>
178Format::Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f) :
oss()
185 case '1':
put(a);
break;
186 case '2':
put(b);
break;
187 case '3':
put(c);
break;
188 case '4':
put(d);
break;
189 case '5':
put(e);
break;
190 case '6':
put(f);
break;
194template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G>
195Format::Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g) :
oss()
202 case '1':
put(a);
break;
203 case '2':
put(b);
break;
204 case '3':
put(c);
break;
205 case '4':
put(d);
break;
206 case '5':
put(e);
break;
207 case '6':
put(f);
break;
208 case '7':
put(g);
break;
212template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G,
typename H>
213Format::Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h) :
oss()
220 case '1':
put(a);
break;
221 case '2':
put(b);
break;
222 case '3':
put(c);
break;
223 case '4':
put(d);
break;
224 case '5':
put(e);
break;
225 case '6':
put(f);
break;
226 case '7':
put(g);
break;
227 case '8':
put(h);
break;
231template<
typename A,
typename B,
typename C,
typename D,
typename E,
typename F,
typename G,
typename H,
typename I>
232Format::Format(
const char* ca,
const A& a,
const B& b,
const C& c,
const D& d,
const E& e,
const F& f,
const G& g,
const H& h,
const I& i) :
oss()
239 case '1':
put(a);
break;
240 case '2':
put(b);
break;
241 case '3':
put(c);
break;
242 case '4':
put(d);
break;
243 case '5':
put(e);
break;
244 case '6':
put(f);
break;
245 case '7':
put(g);
break;
246 case '8':
put(h);
break;
247 case '9':
put(i);
break;
This String class is an abstract data type that represents as NULL terminated string of characters.