23 #ifndef LLVM_SUPPORT_FORMAT_H
24 #define LLVM_SUPPORT_FORMAT_H
34 #define snprintf _snprintf
47 virtual int snprint(
char *Buffer,
unsigned BufferSize)
const = 0;
56 unsigned print(
char *Buffer,
unsigned BufferSize)
const {
57 assert(BufferSize &&
"Invalid buffer size!");
67 if (
unsigned(N) >= BufferSize)
87 virtual int snprint(
char *Buffer,
unsigned BufferSize)
const {
96 template <
typename T1,
typename T2>
105 virtual int snprint(
char *Buffer,
unsigned BufferSize)
const {
106 return snprintf(Buffer, BufferSize,
Fmt, Val1, Val2);
114 template <
typename T1,
typename T2,
typename T3>
124 virtual int snprint(
char *Buffer,
unsigned BufferSize)
const {
125 return snprintf(Buffer, BufferSize,
Fmt, Val1, Val2, Val3);
133 template <
typename T1,
typename T2,
typename T3,
typename T4>
141 const T3 &val3,
const T4 &val4)
145 virtual int snprint(
char *Buffer,
unsigned BufferSize)
const {
146 return snprintf(Buffer, BufferSize,
Fmt, Val1, Val2, Val3, Val4);
154 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
163 const T3 &val3,
const T4 &val4,
const T5 &val5)
168 virtual int snprint(
char *Buffer,
unsigned BufferSize)
const {
169 return snprintf(Buffer, BufferSize,
Fmt, Val1, Val2, Val3, Val4, Val5);
179 template <
typename T>
190 template <
typename T1,
typename T2>
202 template <
typename T1,
typename T2,
typename T3>
204 const T2 &Val2,
const T3 &Val3) {
214 template <
typename T1,
typename T2,
typename T3,
typename T4>
216 const T2 &Val2,
const T3 &Val3,
227 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
229 const T2 &Val2,
const T3 &Val3,
230 const T4 &Val4,
const T5 &Val5) {
format_object1< T > format(const char *Fmt, const T &Val)
int snprintf(char *s, size_t n, const char *format, ...);