ZFFramework
 
Loading...
Searching...
No Matches
zfstr.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_zfstr_h_
7#define _ZFI_zfstr_h_
8
9#include "ZFCoreTypeDef.h"
10
12
60 ZF_IN const zfchar *fmt = zfnull
61 ) {
62 return fmt;
63}
64
66inline void zfstringAppend(
68 , ZF_IN const zfchar *fmt
69 ) {
70 s += fmt;
71}
72
74inline void zfstringAppend(
76 , ZF_IN const zfchar *fmt
77 ) {
78 if(s) {
79 (*s) += fmt;
80 }
81}
82
83typedef void (*_ZFP_zfstrFn)(ZF_IN_OUT zfstring &s, ZF_IN const void *p);
84
85template<typename P>
86void _ZFP_zfstrIvk(ZF_IN_OUT zfstring &s, ZF_IN const void *p) {
87 zftToStringT(s, *(const P *)p);
88}
89
90extern ZFLIB_ZFCore void _ZFP_zfstringAppend(
92 , ZF_IN const zfchar *fmt
93 , ZF_IN zfindex paramCount
94 , ZF_IN const void * const *param
95 , ZF_IN _ZFP_zfstrFn *Fn
96 );
97
99
100// ============================================================
101
102template<
103typename P0
104>
105inline void zfstringAppend(
107 , ZF_IN const zfchar *fmt
108 , ZF_IN P0 const &p0
109 ) {
110 const void *p[1] = {
111 (const void *)&p0,
112 };
113 _ZFP_zfstrFn Fn[1] = {
114 _ZFP_zfstrIvk<P0>,
115 };
116 _ZFP_zfstringAppend(s, fmt, 1, p, Fn);
117}
118template<
119typename P0
120, typename P1
121>
122inline void zfstringAppend(
124 , ZF_IN const zfchar *fmt
125 , ZF_IN P0 const &p0
126 , ZF_IN P1 const &p1
127 ) {
128 const void *p[2] = {
129 (const void *)&p0,
130 (const void *)&p1,
131 };
132 _ZFP_zfstrFn Fn[2] = {
133 _ZFP_zfstrIvk<P0>,
134 _ZFP_zfstrIvk<P1>,
135 };
136 _ZFP_zfstringAppend(s, fmt, 2, p, Fn);
137}
138template<
139typename P0
140, typename P1
141, typename P2
142>
143inline void zfstringAppend(
145 , ZF_IN const zfchar *fmt
146 , ZF_IN P0 const &p0
147 , ZF_IN P1 const &p1
148 , ZF_IN P2 const &p2
149 ) {
150 const void *p[3] = {
151 (const void *)&p0,
152 (const void *)&p1,
153 (const void *)&p2,
154 };
155 _ZFP_zfstrFn Fn[3] = {
156 _ZFP_zfstrIvk<P0>,
157 _ZFP_zfstrIvk<P1>,
158 _ZFP_zfstrIvk<P2>,
159 };
160 _ZFP_zfstringAppend(s, fmt, 3, p, Fn);
161}
162template<
163typename P0
164, typename P1
165, typename P2
166, typename P3
167>
168inline void zfstringAppend(
170 , ZF_IN const zfchar *fmt
171 , ZF_IN P0 const &p0
172 , ZF_IN P1 const &p1
173 , ZF_IN P2 const &p2
174 , ZF_IN P3 const &p3
175 ) {
176 const void *p[4] = {
177 (const void *)&p0,
178 (const void *)&p1,
179 (const void *)&p2,
180 (const void *)&p3,
181 };
182 _ZFP_zfstrFn Fn[4] = {
183 _ZFP_zfstrIvk<P0>,
184 _ZFP_zfstrIvk<P1>,
185 _ZFP_zfstrIvk<P2>,
186 _ZFP_zfstrIvk<P3>,
187 };
188 _ZFP_zfstringAppend(s, fmt, 4, p, Fn);
189}
190template<
191typename P0
192, typename P1
193, typename P2
194, typename P3
195, typename P4
196>
197inline void zfstringAppend(
199 , ZF_IN const zfchar *fmt
200 , ZF_IN P0 const &p0
201 , ZF_IN P1 const &p1
202 , ZF_IN P2 const &p2
203 , ZF_IN P3 const &p3
204 , ZF_IN P4 const &p4
205 ) {
206 const void *p[5] = {
207 (const void *)&p0,
208 (const void *)&p1,
209 (const void *)&p2,
210 (const void *)&p3,
211 (const void *)&p4,
212 };
213 _ZFP_zfstrFn Fn[5] = {
214 _ZFP_zfstrIvk<P0>,
215 _ZFP_zfstrIvk<P1>,
216 _ZFP_zfstrIvk<P2>,
217 _ZFP_zfstrIvk<P3>,
218 _ZFP_zfstrIvk<P4>,
219 };
220 _ZFP_zfstringAppend(s, fmt, 5, p, Fn);
221}
222template<
223typename P0
224, typename P1
225, typename P2
226, typename P3
227, typename P4
228, typename P5
229>
230inline void zfstringAppend(
232 , ZF_IN const zfchar *fmt
233 , ZF_IN P0 const &p0
234 , ZF_IN P1 const &p1
235 , ZF_IN P2 const &p2
236 , ZF_IN P3 const &p3
237 , ZF_IN P4 const &p4
238 , ZF_IN P5 const &p5
239 ) {
240 const void *p[6] = {
241 (const void *)&p0,
242 (const void *)&p1,
243 (const void *)&p2,
244 (const void *)&p3,
245 (const void *)&p4,
246 (const void *)&p5,
247 };
248 _ZFP_zfstrFn Fn[6] = {
249 _ZFP_zfstrIvk<P0>,
250 _ZFP_zfstrIvk<P1>,
251 _ZFP_zfstrIvk<P2>,
252 _ZFP_zfstrIvk<P3>,
253 _ZFP_zfstrIvk<P4>,
254 _ZFP_zfstrIvk<P5>,
255 };
256 _ZFP_zfstringAppend(s, fmt, 6, p, Fn);
257}
258template<
259typename P0
260, typename P1
261, typename P2
262, typename P3
263, typename P4
264, typename P5
265, typename P6
266>
267inline void zfstringAppend(
269 , ZF_IN const zfchar *fmt
270 , ZF_IN P0 const &p0
271 , ZF_IN P1 const &p1
272 , ZF_IN P2 const &p2
273 , ZF_IN P3 const &p3
274 , ZF_IN P4 const &p4
275 , ZF_IN P5 const &p5
276 , ZF_IN P6 const &p6
277 ) {
278 const void *p[7] = {
279 (const void *)&p0,
280 (const void *)&p1,
281 (const void *)&p2,
282 (const void *)&p3,
283 (const void *)&p4,
284 (const void *)&p5,
285 (const void *)&p6,
286 };
287 _ZFP_zfstrFn Fn[7] = {
288 _ZFP_zfstrIvk<P0>,
289 _ZFP_zfstrIvk<P1>,
290 _ZFP_zfstrIvk<P2>,
291 _ZFP_zfstrIvk<P3>,
292 _ZFP_zfstrIvk<P4>,
293 _ZFP_zfstrIvk<P5>,
294 _ZFP_zfstrIvk<P6>,
295 };
296 _ZFP_zfstringAppend(s, fmt, 7, p, Fn);
297}
298template<
299typename P0
300, typename P1
301, typename P2
302, typename P3
303, typename P4
304, typename P5
305, typename P6
306, typename P7
307>
308inline void zfstringAppend(
310 , ZF_IN const zfchar *fmt
311 , ZF_IN P0 const &p0
312 , ZF_IN P1 const &p1
313 , ZF_IN P2 const &p2
314 , ZF_IN P3 const &p3
315 , ZF_IN P4 const &p4
316 , ZF_IN P5 const &p5
317 , ZF_IN P6 const &p6
318 , ZF_IN P7 const &p7
319 ) {
320 const void *p[8] = {
321 (const void *)&p0,
322 (const void *)&p1,
323 (const void *)&p2,
324 (const void *)&p3,
325 (const void *)&p4,
326 (const void *)&p5,
327 (const void *)&p6,
328 (const void *)&p7,
329 };
330 _ZFP_zfstrFn Fn[8] = {
331 _ZFP_zfstrIvk<P0>,
332 _ZFP_zfstrIvk<P1>,
333 _ZFP_zfstrIvk<P2>,
334 _ZFP_zfstrIvk<P3>,
335 _ZFP_zfstrIvk<P4>,
336 _ZFP_zfstrIvk<P5>,
337 _ZFP_zfstrIvk<P6>,
338 _ZFP_zfstrIvk<P7>,
339 };
340 _ZFP_zfstringAppend(s, fmt, 8, p, Fn);
341}
342template<
343typename P0
344, typename P1
345, typename P2
346, typename P3
347, typename P4
348, typename P5
349, typename P6
350, typename P7
351, typename P8
352>
353inline void zfstringAppend(
355 , ZF_IN const zfchar *fmt
356 , ZF_IN P0 const &p0
357 , ZF_IN P1 const &p1
358 , ZF_IN P2 const &p2
359 , ZF_IN P3 const &p3
360 , ZF_IN P4 const &p4
361 , ZF_IN P5 const &p5
362 , ZF_IN P6 const &p6
363 , ZF_IN P7 const &p7
364 , ZF_IN P8 const &p8
365 ) {
366 const void *p[9] = {
367 (const void *)&p0,
368 (const void *)&p1,
369 (const void *)&p2,
370 (const void *)&p3,
371 (const void *)&p4,
372 (const void *)&p5,
373 (const void *)&p6,
374 (const void *)&p7,
375 (const void *)&p8,
376 };
377 _ZFP_zfstrFn Fn[9] = {
378 _ZFP_zfstrIvk<P0>,
379 _ZFP_zfstrIvk<P1>,
380 _ZFP_zfstrIvk<P2>,
381 _ZFP_zfstrIvk<P3>,
382 _ZFP_zfstrIvk<P4>,
383 _ZFP_zfstrIvk<P5>,
384 _ZFP_zfstrIvk<P6>,
385 _ZFP_zfstrIvk<P7>,
386 _ZFP_zfstrIvk<P8>,
387 };
388 _ZFP_zfstringAppend(s, fmt, 9, p, Fn);
389}
390template<
391typename P0
392, typename P1
393, typename P2
394, typename P3
395, typename P4
396, typename P5
397, typename P6
398, typename P7
399, typename P8
400, typename P9
401>
402inline void zfstringAppend(
404 , ZF_IN const zfchar *fmt
405 , ZF_IN P0 const &p0
406 , ZF_IN P1 const &p1
407 , ZF_IN P2 const &p2
408 , ZF_IN P3 const &p3
409 , ZF_IN P4 const &p4
410 , ZF_IN P5 const &p5
411 , ZF_IN P6 const &p6
412 , ZF_IN P7 const &p7
413 , ZF_IN P8 const &p8
414 , ZF_IN P9 const &p9
415 ) {
416 const void *p[10] = {
417 (const void *)&p0,
418 (const void *)&p1,
419 (const void *)&p2,
420 (const void *)&p3,
421 (const void *)&p4,
422 (const void *)&p5,
423 (const void *)&p6,
424 (const void *)&p7,
425 (const void *)&p8,
426 (const void *)&p9,
427 };
428 _ZFP_zfstrFn Fn[10] = {
429 _ZFP_zfstrIvk<P0>,
430 _ZFP_zfstrIvk<P1>,
431 _ZFP_zfstrIvk<P2>,
432 _ZFP_zfstrIvk<P3>,
433 _ZFP_zfstrIvk<P4>,
434 _ZFP_zfstrIvk<P5>,
435 _ZFP_zfstrIvk<P6>,
436 _ZFP_zfstrIvk<P7>,
437 _ZFP_zfstrIvk<P8>,
438 _ZFP_zfstrIvk<P9>,
439 };
440 _ZFP_zfstringAppend(s, fmt, 10, p, Fn);
441}
442template<
443typename P0
444, typename P1
445, typename P2
446, typename P3
447, typename P4
448, typename P5
449, typename P6
450, typename P7
451, typename P8
452, typename P9
453, typename P10
454>
455inline void zfstringAppend(
457 , ZF_IN const zfchar *fmt
458 , ZF_IN P0 const &p0
459 , ZF_IN P1 const &p1
460 , ZF_IN P2 const &p2
461 , ZF_IN P3 const &p3
462 , ZF_IN P4 const &p4
463 , ZF_IN P5 const &p5
464 , ZF_IN P6 const &p6
465 , ZF_IN P7 const &p7
466 , ZF_IN P8 const &p8
467 , ZF_IN P9 const &p9
468 , ZF_IN P10 const &p10
469 ) {
470 const void *p[11] = {
471 (const void *)&p0,
472 (const void *)&p1,
473 (const void *)&p2,
474 (const void *)&p3,
475 (const void *)&p4,
476 (const void *)&p5,
477 (const void *)&p6,
478 (const void *)&p7,
479 (const void *)&p8,
480 (const void *)&p9,
481 (const void *)&p10,
482 };
483 _ZFP_zfstrFn Fn[11] = {
484 _ZFP_zfstrIvk<P0>,
485 _ZFP_zfstrIvk<P1>,
486 _ZFP_zfstrIvk<P2>,
487 _ZFP_zfstrIvk<P3>,
488 _ZFP_zfstrIvk<P4>,
489 _ZFP_zfstrIvk<P5>,
490 _ZFP_zfstrIvk<P6>,
491 _ZFP_zfstrIvk<P7>,
492 _ZFP_zfstrIvk<P8>,
493 _ZFP_zfstrIvk<P9>,
494 _ZFP_zfstrIvk<P10>,
495 };
496 _ZFP_zfstringAppend(s, fmt, 11, p, Fn);
497}
498template<
499typename P0
500, typename P1
501, typename P2
502, typename P3
503, typename P4
504, typename P5
505, typename P6
506, typename P7
507, typename P8
508, typename P9
509, typename P10
510, typename P11
511>
512inline void zfstringAppend(
514 , ZF_IN const zfchar *fmt
515 , ZF_IN P0 const &p0
516 , ZF_IN P1 const &p1
517 , ZF_IN P2 const &p2
518 , ZF_IN P3 const &p3
519 , ZF_IN P4 const &p4
520 , ZF_IN P5 const &p5
521 , ZF_IN P6 const &p6
522 , ZF_IN P7 const &p7
523 , ZF_IN P8 const &p8
524 , ZF_IN P9 const &p9
525 , ZF_IN P10 const &p10
526 , ZF_IN P11 const &p11
527 ) {
528 const void *p[12] = {
529 (const void *)&p0,
530 (const void *)&p1,
531 (const void *)&p2,
532 (const void *)&p3,
533 (const void *)&p4,
534 (const void *)&p5,
535 (const void *)&p6,
536 (const void *)&p7,
537 (const void *)&p8,
538 (const void *)&p9,
539 (const void *)&p10,
540 (const void *)&p11,
541 };
542 _ZFP_zfstrFn Fn[12] = {
543 _ZFP_zfstrIvk<P0>,
544 _ZFP_zfstrIvk<P1>,
545 _ZFP_zfstrIvk<P2>,
546 _ZFP_zfstrIvk<P3>,
547 _ZFP_zfstrIvk<P4>,
548 _ZFP_zfstrIvk<P5>,
549 _ZFP_zfstrIvk<P6>,
550 _ZFP_zfstrIvk<P7>,
551 _ZFP_zfstrIvk<P8>,
552 _ZFP_zfstrIvk<P9>,
553 _ZFP_zfstrIvk<P10>,
554 _ZFP_zfstrIvk<P11>,
555 };
556 _ZFP_zfstringAppend(s, fmt, 12, p, Fn);
557}
558template<
559typename P0
560, typename P1
561, typename P2
562, typename P3
563, typename P4
564, typename P5
565, typename P6
566, typename P7
567, typename P8
568, typename P9
569, typename P10
570, typename P11
571, typename P12
572>
573inline void zfstringAppend(
575 , ZF_IN const zfchar *fmt
576 , ZF_IN P0 const &p0
577 , ZF_IN P1 const &p1
578 , ZF_IN P2 const &p2
579 , ZF_IN P3 const &p3
580 , ZF_IN P4 const &p4
581 , ZF_IN P5 const &p5
582 , ZF_IN P6 const &p6
583 , ZF_IN P7 const &p7
584 , ZF_IN P8 const &p8
585 , ZF_IN P9 const &p9
586 , ZF_IN P10 const &p10
587 , ZF_IN P11 const &p11
588 , ZF_IN P12 const &p12
589 ) {
590 const void *p[13] = {
591 (const void *)&p0,
592 (const void *)&p1,
593 (const void *)&p2,
594 (const void *)&p3,
595 (const void *)&p4,
596 (const void *)&p5,
597 (const void *)&p6,
598 (const void *)&p7,
599 (const void *)&p8,
600 (const void *)&p9,
601 (const void *)&p10,
602 (const void *)&p11,
603 (const void *)&p12,
604 };
605 _ZFP_zfstrFn Fn[13] = {
606 _ZFP_zfstrIvk<P0>,
607 _ZFP_zfstrIvk<P1>,
608 _ZFP_zfstrIvk<P2>,
609 _ZFP_zfstrIvk<P3>,
610 _ZFP_zfstrIvk<P4>,
611 _ZFP_zfstrIvk<P5>,
612 _ZFP_zfstrIvk<P6>,
613 _ZFP_zfstrIvk<P7>,
614 _ZFP_zfstrIvk<P8>,
615 _ZFP_zfstrIvk<P9>,
616 _ZFP_zfstrIvk<P10>,
617 _ZFP_zfstrIvk<P11>,
618 _ZFP_zfstrIvk<P12>,
619 };
620 _ZFP_zfstringAppend(s, fmt, 13, p, Fn);
621}
622template<
623typename P0
624, typename P1
625, typename P2
626, typename P3
627, typename P4
628, typename P5
629, typename P6
630, typename P7
631, typename P8
632, typename P9
633, typename P10
634, typename P11
635, typename P12
636, typename P13
637>
638inline void zfstringAppend(
640 , ZF_IN const zfchar *fmt
641 , ZF_IN P0 const &p0
642 , ZF_IN P1 const &p1
643 , ZF_IN P2 const &p2
644 , ZF_IN P3 const &p3
645 , ZF_IN P4 const &p4
646 , ZF_IN P5 const &p5
647 , ZF_IN P6 const &p6
648 , ZF_IN P7 const &p7
649 , ZF_IN P8 const &p8
650 , ZF_IN P9 const &p9
651 , ZF_IN P10 const &p10
652 , ZF_IN P11 const &p11
653 , ZF_IN P12 const &p12
654 , ZF_IN P13 const &p13
655 ) {
656 const void *p[14] = {
657 (const void *)&p0,
658 (const void *)&p1,
659 (const void *)&p2,
660 (const void *)&p3,
661 (const void *)&p4,
662 (const void *)&p5,
663 (const void *)&p6,
664 (const void *)&p7,
665 (const void *)&p8,
666 (const void *)&p9,
667 (const void *)&p10,
668 (const void *)&p11,
669 (const void *)&p12,
670 (const void *)&p13,
671 };
672 _ZFP_zfstrFn Fn[14] = {
673 _ZFP_zfstrIvk<P0>,
674 _ZFP_zfstrIvk<P1>,
675 _ZFP_zfstrIvk<P2>,
676 _ZFP_zfstrIvk<P3>,
677 _ZFP_zfstrIvk<P4>,
678 _ZFP_zfstrIvk<P5>,
679 _ZFP_zfstrIvk<P6>,
680 _ZFP_zfstrIvk<P7>,
681 _ZFP_zfstrIvk<P8>,
682 _ZFP_zfstrIvk<P9>,
683 _ZFP_zfstrIvk<P10>,
684 _ZFP_zfstrIvk<P11>,
685 _ZFP_zfstrIvk<P12>,
686 _ZFP_zfstrIvk<P13>,
687 };
688 _ZFP_zfstringAppend(s, fmt, 14, p, Fn);
689}
690template<
691typename P0
692, typename P1
693, typename P2
694, typename P3
695, typename P4
696, typename P5
697, typename P6
698, typename P7
699, typename P8
700, typename P9
701, typename P10
702, typename P11
703, typename P12
704, typename P13
705, typename P14
706>
707inline void zfstringAppend(
709 , ZF_IN const zfchar *fmt
710 , ZF_IN P0 const &p0
711 , ZF_IN P1 const &p1
712 , ZF_IN P2 const &p2
713 , ZF_IN P3 const &p3
714 , ZF_IN P4 const &p4
715 , ZF_IN P5 const &p5
716 , ZF_IN P6 const &p6
717 , ZF_IN P7 const &p7
718 , ZF_IN P8 const &p8
719 , ZF_IN P9 const &p9
720 , ZF_IN P10 const &p10
721 , ZF_IN P11 const &p11
722 , ZF_IN P12 const &p12
723 , ZF_IN P13 const &p13
724 , ZF_IN P14 const &p14
725 ) {
726 const void *p[15] = {
727 (const void *)&p0,
728 (const void *)&p1,
729 (const void *)&p2,
730 (const void *)&p3,
731 (const void *)&p4,
732 (const void *)&p5,
733 (const void *)&p6,
734 (const void *)&p7,
735 (const void *)&p8,
736 (const void *)&p9,
737 (const void *)&p10,
738 (const void *)&p11,
739 (const void *)&p12,
740 (const void *)&p13,
741 (const void *)&p14,
742 };
743 _ZFP_zfstrFn Fn[15] = {
744 _ZFP_zfstrIvk<P0>,
745 _ZFP_zfstrIvk<P1>,
746 _ZFP_zfstrIvk<P2>,
747 _ZFP_zfstrIvk<P3>,
748 _ZFP_zfstrIvk<P4>,
749 _ZFP_zfstrIvk<P5>,
750 _ZFP_zfstrIvk<P6>,
751 _ZFP_zfstrIvk<P7>,
752 _ZFP_zfstrIvk<P8>,
753 _ZFP_zfstrIvk<P9>,
754 _ZFP_zfstrIvk<P10>,
755 _ZFP_zfstrIvk<P11>,
756 _ZFP_zfstrIvk<P12>,
757 _ZFP_zfstrIvk<P13>,
758 _ZFP_zfstrIvk<P14>,
759 };
760 _ZFP_zfstringAppend(s, fmt, 15, p, Fn);
761}
762template<
763typename P0
764, typename P1
765, typename P2
766, typename P3
767, typename P4
768, typename P5
769, typename P6
770, typename P7
771, typename P8
772, typename P9
773, typename P10
774, typename P11
775, typename P12
776, typename P13
777, typename P14
778, typename P15
779>
780inline void zfstringAppend(
782 , ZF_IN const zfchar *fmt
783 , ZF_IN P0 const &p0
784 , ZF_IN P1 const &p1
785 , ZF_IN P2 const &p2
786 , ZF_IN P3 const &p3
787 , ZF_IN P4 const &p4
788 , ZF_IN P5 const &p5
789 , ZF_IN P6 const &p6
790 , ZF_IN P7 const &p7
791 , ZF_IN P8 const &p8
792 , ZF_IN P9 const &p9
793 , ZF_IN P10 const &p10
794 , ZF_IN P11 const &p11
795 , ZF_IN P12 const &p12
796 , ZF_IN P13 const &p13
797 , ZF_IN P14 const &p14
798 , ZF_IN P15 const &p15
799 ) {
800 const void *p[16] = {
801 (const void *)&p0,
802 (const void *)&p1,
803 (const void *)&p2,
804 (const void *)&p3,
805 (const void *)&p4,
806 (const void *)&p5,
807 (const void *)&p6,
808 (const void *)&p7,
809 (const void *)&p8,
810 (const void *)&p9,
811 (const void *)&p10,
812 (const void *)&p11,
813 (const void *)&p12,
814 (const void *)&p13,
815 (const void *)&p14,
816 (const void *)&p15,
817 };
818 _ZFP_zfstrFn Fn[16] = {
819 _ZFP_zfstrIvk<P0>,
820 _ZFP_zfstrIvk<P1>,
821 _ZFP_zfstrIvk<P2>,
822 _ZFP_zfstrIvk<P3>,
823 _ZFP_zfstrIvk<P4>,
824 _ZFP_zfstrIvk<P5>,
825 _ZFP_zfstrIvk<P6>,
826 _ZFP_zfstrIvk<P7>,
827 _ZFP_zfstrIvk<P8>,
828 _ZFP_zfstrIvk<P9>,
829 _ZFP_zfstrIvk<P10>,
830 _ZFP_zfstrIvk<P11>,
831 _ZFP_zfstrIvk<P12>,
832 _ZFP_zfstrIvk<P13>,
833 _ZFP_zfstrIvk<P14>,
834 _ZFP_zfstrIvk<P15>,
835 };
836 _ZFP_zfstringAppend(s, fmt, 16, p, Fn);
837}
838
839// ============================================================
840
841template<
842typename P0
843>
844inline void zfstringAppend(
846 , ZF_IN const zfchar *fmt
847 , ZF_IN P0 const &p0
848 ) {
849 if(s) {
850 zfstringAppend(*s, fmt
851 , p0
852 );
853 }
854}
855template<
856typename P0
857, typename P1
858>
859inline void zfstringAppend(
861 , ZF_IN const zfchar *fmt
862 , ZF_IN P0 const &p0
863 , ZF_IN P1 const &p1
864 ) {
865 if(s) {
866 zfstringAppend(*s, fmt
867 , p0
868 , p1
869 );
870 }
871}
872template<
873typename P0
874, typename P1
875, typename P2
876>
877inline void zfstringAppend(
879 , ZF_IN const zfchar *fmt
880 , ZF_IN P0 const &p0
881 , ZF_IN P1 const &p1
882 , ZF_IN P2 const &p2
883 ) {
884 if(s) {
885 zfstringAppend(*s, fmt
886 , p0
887 , p1
888 , p2
889 );
890 }
891}
892template<
893typename P0
894, typename P1
895, typename P2
896, typename P3
897>
898inline void zfstringAppend(
900 , ZF_IN const zfchar *fmt
901 , ZF_IN P0 const &p0
902 , ZF_IN P1 const &p1
903 , ZF_IN P2 const &p2
904 , ZF_IN P3 const &p3
905 ) {
906 if(s) {
907 zfstringAppend(*s, fmt
908 , p0
909 , p1
910 , p2
911 , p3
912 );
913 }
914}
915template<
916typename P0
917, typename P1
918, typename P2
919, typename P3
920, typename P4
921>
922inline void zfstringAppend(
924 , ZF_IN const zfchar *fmt
925 , ZF_IN P0 const &p0
926 , ZF_IN P1 const &p1
927 , ZF_IN P2 const &p2
928 , ZF_IN P3 const &p3
929 , ZF_IN P4 const &p4
930 ) {
931 if(s) {
932 zfstringAppend(*s, fmt
933 , p0
934 , p1
935 , p2
936 , p3
937 , p4
938 );
939 }
940}
941template<
942typename P0
943, typename P1
944, typename P2
945, typename P3
946, typename P4
947, typename P5
948>
949inline void zfstringAppend(
951 , ZF_IN const zfchar *fmt
952 , ZF_IN P0 const &p0
953 , ZF_IN P1 const &p1
954 , ZF_IN P2 const &p2
955 , ZF_IN P3 const &p3
956 , ZF_IN P4 const &p4
957 , ZF_IN P5 const &p5
958 ) {
959 if(s) {
960 zfstringAppend(*s, fmt
961 , p0
962 , p1
963 , p2
964 , p3
965 , p4
966 , p5
967 );
968 }
969}
970template<
971typename P0
972, typename P1
973, typename P2
974, typename P3
975, typename P4
976, typename P5
977, typename P6
978>
979inline void zfstringAppend(
981 , ZF_IN const zfchar *fmt
982 , ZF_IN P0 const &p0
983 , ZF_IN P1 const &p1
984 , ZF_IN P2 const &p2
985 , ZF_IN P3 const &p3
986 , ZF_IN P4 const &p4
987 , ZF_IN P5 const &p5
988 , ZF_IN P6 const &p6
989 ) {
990 if(s) {
991 zfstringAppend(*s, fmt
992 , p0
993 , p1
994 , p2
995 , p3
996 , p4
997 , p5
998 , p6
999 );
1000 }
1001}
1002template<
1003typename P0
1004, typename P1
1005, typename P2
1006, typename P3
1007, typename P4
1008, typename P5
1009, typename P6
1010, typename P7
1011>
1012inline void zfstringAppend(
1014 , ZF_IN const zfchar *fmt
1015 , ZF_IN P0 const &p0
1016 , ZF_IN P1 const &p1
1017 , ZF_IN P2 const &p2
1018 , ZF_IN P3 const &p3
1019 , ZF_IN P4 const &p4
1020 , ZF_IN P5 const &p5
1021 , ZF_IN P6 const &p6
1022 , ZF_IN P7 const &p7
1023 ) {
1024 if(s) {
1025 zfstringAppend(*s, fmt
1026 , p0
1027 , p1
1028 , p2
1029 , p3
1030 , p4
1031 , p5
1032 , p6
1033 , p7
1034 );
1035 }
1036}
1037template<
1038typename P0
1039, typename P1
1040, typename P2
1041, typename P3
1042, typename P4
1043, typename P5
1044, typename P6
1045, typename P7
1046, typename P8
1047>
1048inline void zfstringAppend(
1050 , ZF_IN const zfchar *fmt
1051 , ZF_IN P0 const &p0
1052 , ZF_IN P1 const &p1
1053 , ZF_IN P2 const &p2
1054 , ZF_IN P3 const &p3
1055 , ZF_IN P4 const &p4
1056 , ZF_IN P5 const &p5
1057 , ZF_IN P6 const &p6
1058 , ZF_IN P7 const &p7
1059 , ZF_IN P8 const &p8
1060 ) {
1061 if(s) {
1062 zfstringAppend(*s, fmt
1063 , p0
1064 , p1
1065 , p2
1066 , p3
1067 , p4
1068 , p5
1069 , p6
1070 , p7
1071 , p8
1072 );
1073 }
1074}
1075template<
1076typename P0
1077, typename P1
1078, typename P2
1079, typename P3
1080, typename P4
1081, typename P5
1082, typename P6
1083, typename P7
1084, typename P8
1085, typename P9
1086>
1087inline void zfstringAppend(
1089 , ZF_IN const zfchar *fmt
1090 , ZF_IN P0 const &p0
1091 , ZF_IN P1 const &p1
1092 , ZF_IN P2 const &p2
1093 , ZF_IN P3 const &p3
1094 , ZF_IN P4 const &p4
1095 , ZF_IN P5 const &p5
1096 , ZF_IN P6 const &p6
1097 , ZF_IN P7 const &p7
1098 , ZF_IN P8 const &p8
1099 , ZF_IN P9 const &p9
1100 ) {
1101 if(s) {
1102 zfstringAppend(*s, fmt
1103 , p0
1104 , p1
1105 , p2
1106 , p3
1107 , p4
1108 , p5
1109 , p6
1110 , p7
1111 , p8
1112 , p9
1113 );
1114 }
1115}
1116template<
1117typename P0
1118, typename P1
1119, typename P2
1120, typename P3
1121, typename P4
1122, typename P5
1123, typename P6
1124, typename P7
1125, typename P8
1126, typename P9
1127, typename P10
1128>
1129inline void zfstringAppend(
1131 , ZF_IN const zfchar *fmt
1132 , ZF_IN P0 const &p0
1133 , ZF_IN P1 const &p1
1134 , ZF_IN P2 const &p2
1135 , ZF_IN P3 const &p3
1136 , ZF_IN P4 const &p4
1137 , ZF_IN P5 const &p5
1138 , ZF_IN P6 const &p6
1139 , ZF_IN P7 const &p7
1140 , ZF_IN P8 const &p8
1141 , ZF_IN P9 const &p9
1142 , ZF_IN P10 const &p10
1143 ) {
1144 if(s) {
1145 zfstringAppend(*s, fmt
1146 , p0
1147 , p1
1148 , p2
1149 , p3
1150 , p4
1151 , p5
1152 , p6
1153 , p7
1154 , p8
1155 , p9
1156 , p10
1157 );
1158 }
1159}
1160template<
1161typename P0
1162, typename P1
1163, typename P2
1164, typename P3
1165, typename P4
1166, typename P5
1167, typename P6
1168, typename P7
1169, typename P8
1170, typename P9
1171, typename P10
1172, typename P11
1173>
1174inline void zfstringAppend(
1176 , ZF_IN const zfchar *fmt
1177 , ZF_IN P0 const &p0
1178 , ZF_IN P1 const &p1
1179 , ZF_IN P2 const &p2
1180 , ZF_IN P3 const &p3
1181 , ZF_IN P4 const &p4
1182 , ZF_IN P5 const &p5
1183 , ZF_IN P6 const &p6
1184 , ZF_IN P7 const &p7
1185 , ZF_IN P8 const &p8
1186 , ZF_IN P9 const &p9
1187 , ZF_IN P10 const &p10
1188 , ZF_IN P11 const &p11
1189 ) {
1190 if(s) {
1191 zfstringAppend(*s, fmt
1192 , p0
1193 , p1
1194 , p2
1195 , p3
1196 , p4
1197 , p5
1198 , p6
1199 , p7
1200 , p8
1201 , p9
1202 , p10
1203 , p11
1204 );
1205 }
1206}
1207template<
1208typename P0
1209, typename P1
1210, typename P2
1211, typename P3
1212, typename P4
1213, typename P5
1214, typename P6
1215, typename P7
1216, typename P8
1217, typename P9
1218, typename P10
1219, typename P11
1220, typename P12
1221>
1222inline void zfstringAppend(
1224 , ZF_IN const zfchar *fmt
1225 , ZF_IN P0 const &p0
1226 , ZF_IN P1 const &p1
1227 , ZF_IN P2 const &p2
1228 , ZF_IN P3 const &p3
1229 , ZF_IN P4 const &p4
1230 , ZF_IN P5 const &p5
1231 , ZF_IN P6 const &p6
1232 , ZF_IN P7 const &p7
1233 , ZF_IN P8 const &p8
1234 , ZF_IN P9 const &p9
1235 , ZF_IN P10 const &p10
1236 , ZF_IN P11 const &p11
1237 , ZF_IN P12 const &p12
1238 ) {
1239 if(s) {
1240 zfstringAppend(*s, fmt
1241 , p0
1242 , p1
1243 , p2
1244 , p3
1245 , p4
1246 , p5
1247 , p6
1248 , p7
1249 , p8
1250 , p9
1251 , p10
1252 , p11
1253 , p12
1254 );
1255 }
1256}
1257template<
1258typename P0
1259, typename P1
1260, typename P2
1261, typename P3
1262, typename P4
1263, typename P5
1264, typename P6
1265, typename P7
1266, typename P8
1267, typename P9
1268, typename P10
1269, typename P11
1270, typename P12
1271, typename P13
1272>
1273inline void zfstringAppend(
1275 , ZF_IN const zfchar *fmt
1276 , ZF_IN P0 const &p0
1277 , ZF_IN P1 const &p1
1278 , ZF_IN P2 const &p2
1279 , ZF_IN P3 const &p3
1280 , ZF_IN P4 const &p4
1281 , ZF_IN P5 const &p5
1282 , ZF_IN P6 const &p6
1283 , ZF_IN P7 const &p7
1284 , ZF_IN P8 const &p8
1285 , ZF_IN P9 const &p9
1286 , ZF_IN P10 const &p10
1287 , ZF_IN P11 const &p11
1288 , ZF_IN P12 const &p12
1289 , ZF_IN P13 const &p13
1290 ) {
1291 if(s) {
1292 zfstringAppend(*s, fmt
1293 , p0
1294 , p1
1295 , p2
1296 , p3
1297 , p4
1298 , p5
1299 , p6
1300 , p7
1301 , p8
1302 , p9
1303 , p10
1304 , p11
1305 , p12
1306 , p13
1307 );
1308 }
1309}
1310template<
1311typename P0
1312, typename P1
1313, typename P2
1314, typename P3
1315, typename P4
1316, typename P5
1317, typename P6
1318, typename P7
1319, typename P8
1320, typename P9
1321, typename P10
1322, typename P11
1323, typename P12
1324, typename P13
1325, typename P14
1326>
1327inline void zfstringAppend(
1329 , ZF_IN const zfchar *fmt
1330 , ZF_IN P0 const &p0
1331 , ZF_IN P1 const &p1
1332 , ZF_IN P2 const &p2
1333 , ZF_IN P3 const &p3
1334 , ZF_IN P4 const &p4
1335 , ZF_IN P5 const &p5
1336 , ZF_IN P6 const &p6
1337 , ZF_IN P7 const &p7
1338 , ZF_IN P8 const &p8
1339 , ZF_IN P9 const &p9
1340 , ZF_IN P10 const &p10
1341 , ZF_IN P11 const &p11
1342 , ZF_IN P12 const &p12
1343 , ZF_IN P13 const &p13
1344 , ZF_IN P14 const &p14
1345 ) {
1346 if(s) {
1347 zfstringAppend(*s, fmt
1348 , p0
1349 , p1
1350 , p2
1351 , p3
1352 , p4
1353 , p5
1354 , p6
1355 , p7
1356 , p8
1357 , p9
1358 , p10
1359 , p11
1360 , p12
1361 , p13
1362 , p14
1363 );
1364 }
1365}
1366template<
1367typename P0
1368, typename P1
1369, typename P2
1370, typename P3
1371, typename P4
1372, typename P5
1373, typename P6
1374, typename P7
1375, typename P8
1376, typename P9
1377, typename P10
1378, typename P11
1379, typename P12
1380, typename P13
1381, typename P14
1382, typename P15
1383>
1384inline void zfstringAppend(
1386 , ZF_IN const zfchar *fmt
1387 , ZF_IN P0 const &p0
1388 , ZF_IN P1 const &p1
1389 , ZF_IN P2 const &p2
1390 , ZF_IN P3 const &p3
1391 , ZF_IN P4 const &p4
1392 , ZF_IN P5 const &p5
1393 , ZF_IN P6 const &p6
1394 , ZF_IN P7 const &p7
1395 , ZF_IN P8 const &p8
1396 , ZF_IN P9 const &p9
1397 , ZF_IN P10 const &p10
1398 , ZF_IN P11 const &p11
1399 , ZF_IN P12 const &p12
1400 , ZF_IN P13 const &p13
1401 , ZF_IN P14 const &p14
1402 , ZF_IN P15 const &p15
1403 ) {
1404 if(s) {
1405 zfstringAppend(*s, fmt
1406 , p0
1407 , p1
1408 , p2
1409 , p3
1410 , p4
1411 , p5
1412 , p6
1413 , p7
1414 , p8
1415 , p9
1416 , p10
1417 , p11
1418 , p12
1419 , p13
1420 , p14
1421 , p15
1422 );
1423 }
1424}
1425
1426// ============================================================
1427
1428template<
1429typename P0
1430>
1431inline zfstring zfstr(
1432 ZF_IN const zfchar *fmt
1433 , ZF_IN P0 const &p0
1434 ) {
1435 zfstring s;
1436 zfstringAppend(s, fmt
1437 , p0
1438 );
1439 return s;
1440}
1441template<
1442typename P0
1443, typename P1
1444>
1445inline zfstring zfstr(
1446 ZF_IN const zfchar *fmt
1447 , ZF_IN P0 const &p0
1448 , ZF_IN P1 const &p1
1449 ) {
1450 zfstring s;
1451 zfstringAppend(s, fmt
1452 , p0
1453 , p1
1454 );
1455 return s;
1456}
1457template<
1458typename P0
1459, typename P1
1460, typename P2
1461>
1462inline zfstring zfstr(
1463 ZF_IN const zfchar *fmt
1464 , ZF_IN P0 const &p0
1465 , ZF_IN P1 const &p1
1466 , ZF_IN P2 const &p2
1467 ) {
1468 zfstring s;
1469 zfstringAppend(s, fmt
1470 , p0
1471 , p1
1472 , p2
1473 );
1474 return s;
1475}
1476template<
1477typename P0
1478, typename P1
1479, typename P2
1480, typename P3
1481>
1482inline zfstring zfstr(
1483 ZF_IN const zfchar *fmt
1484 , ZF_IN P0 const &p0
1485 , ZF_IN P1 const &p1
1486 , ZF_IN P2 const &p2
1487 , ZF_IN P3 const &p3
1488 ) {
1489 zfstring s;
1490 zfstringAppend(s, fmt
1491 , p0
1492 , p1
1493 , p2
1494 , p3
1495 );
1496 return s;
1497}
1498template<
1499typename P0
1500, typename P1
1501, typename P2
1502, typename P3
1503, typename P4
1504>
1505inline zfstring zfstr(
1506 ZF_IN const zfchar *fmt
1507 , ZF_IN P0 const &p0
1508 , ZF_IN P1 const &p1
1509 , ZF_IN P2 const &p2
1510 , ZF_IN P3 const &p3
1511 , ZF_IN P4 const &p4
1512 ) {
1513 zfstring s;
1514 zfstringAppend(s, fmt
1515 , p0
1516 , p1
1517 , p2
1518 , p3
1519 , p4
1520 );
1521 return s;
1522}
1523template<
1524typename P0
1525, typename P1
1526, typename P2
1527, typename P3
1528, typename P4
1529, typename P5
1530>
1531inline zfstring zfstr(
1532 ZF_IN const zfchar *fmt
1533 , ZF_IN P0 const &p0
1534 , ZF_IN P1 const &p1
1535 , ZF_IN P2 const &p2
1536 , ZF_IN P3 const &p3
1537 , ZF_IN P4 const &p4
1538 , ZF_IN P5 const &p5
1539 ) {
1540 zfstring s;
1541 zfstringAppend(s, fmt
1542 , p0
1543 , p1
1544 , p2
1545 , p3
1546 , p4
1547 , p5
1548 );
1549 return s;
1550}
1551template<
1552typename P0
1553, typename P1
1554, typename P2
1555, typename P3
1556, typename P4
1557, typename P5
1558, typename P6
1559>
1560inline zfstring zfstr(
1561 ZF_IN const zfchar *fmt
1562 , ZF_IN P0 const &p0
1563 , ZF_IN P1 const &p1
1564 , ZF_IN P2 const &p2
1565 , ZF_IN P3 const &p3
1566 , ZF_IN P4 const &p4
1567 , ZF_IN P5 const &p5
1568 , ZF_IN P6 const &p6
1569 ) {
1570 zfstring s;
1571 zfstringAppend(s, fmt
1572 , p0
1573 , p1
1574 , p2
1575 , p3
1576 , p4
1577 , p5
1578 , p6
1579 );
1580 return s;
1581}
1582template<
1583typename P0
1584, typename P1
1585, typename P2
1586, typename P3
1587, typename P4
1588, typename P5
1589, typename P6
1590, typename P7
1591>
1592inline zfstring zfstr(
1593 ZF_IN const zfchar *fmt
1594 , ZF_IN P0 const &p0
1595 , ZF_IN P1 const &p1
1596 , ZF_IN P2 const &p2
1597 , ZF_IN P3 const &p3
1598 , ZF_IN P4 const &p4
1599 , ZF_IN P5 const &p5
1600 , ZF_IN P6 const &p6
1601 , ZF_IN P7 const &p7
1602 ) {
1603 zfstring s;
1604 zfstringAppend(s, fmt
1605 , p0
1606 , p1
1607 , p2
1608 , p3
1609 , p4
1610 , p5
1611 , p6
1612 , p7
1613 );
1614 return s;
1615}
1616template<
1617typename P0
1618, typename P1
1619, typename P2
1620, typename P3
1621, typename P4
1622, typename P5
1623, typename P6
1624, typename P7
1625, typename P8
1626>
1627inline zfstring zfstr(
1628 ZF_IN const zfchar *fmt
1629 , ZF_IN P0 const &p0
1630 , ZF_IN P1 const &p1
1631 , ZF_IN P2 const &p2
1632 , ZF_IN P3 const &p3
1633 , ZF_IN P4 const &p4
1634 , ZF_IN P5 const &p5
1635 , ZF_IN P6 const &p6
1636 , ZF_IN P7 const &p7
1637 , ZF_IN P8 const &p8
1638 ) {
1639 zfstring s;
1640 zfstringAppend(s, fmt
1641 , p0
1642 , p1
1643 , p2
1644 , p3
1645 , p4
1646 , p5
1647 , p6
1648 , p7
1649 , p8
1650 );
1651 return s;
1652}
1653template<
1654typename P0
1655, typename P1
1656, typename P2
1657, typename P3
1658, typename P4
1659, typename P5
1660, typename P6
1661, typename P7
1662, typename P8
1663, typename P9
1664>
1665inline zfstring zfstr(
1666 ZF_IN const zfchar *fmt
1667 , ZF_IN P0 const &p0
1668 , ZF_IN P1 const &p1
1669 , ZF_IN P2 const &p2
1670 , ZF_IN P3 const &p3
1671 , ZF_IN P4 const &p4
1672 , ZF_IN P5 const &p5
1673 , ZF_IN P6 const &p6
1674 , ZF_IN P7 const &p7
1675 , ZF_IN P8 const &p8
1676 , ZF_IN P9 const &p9
1677 ) {
1678 zfstring s;
1679 zfstringAppend(s, fmt
1680 , p0
1681 , p1
1682 , p2
1683 , p3
1684 , p4
1685 , p5
1686 , p6
1687 , p7
1688 , p8
1689 , p9
1690 );
1691 return s;
1692}
1693template<
1694typename P0
1695, typename P1
1696, typename P2
1697, typename P3
1698, typename P4
1699, typename P5
1700, typename P6
1701, typename P7
1702, typename P8
1703, typename P9
1704, typename P10
1705>
1706inline zfstring zfstr(
1707 ZF_IN const zfchar *fmt
1708 , ZF_IN P0 const &p0
1709 , ZF_IN P1 const &p1
1710 , ZF_IN P2 const &p2
1711 , ZF_IN P3 const &p3
1712 , ZF_IN P4 const &p4
1713 , ZF_IN P5 const &p5
1714 , ZF_IN P6 const &p6
1715 , ZF_IN P7 const &p7
1716 , ZF_IN P8 const &p8
1717 , ZF_IN P9 const &p9
1718 , ZF_IN P10 const &p10
1719 ) {
1720 zfstring s;
1721 zfstringAppend(s, fmt
1722 , p0
1723 , p1
1724 , p2
1725 , p3
1726 , p4
1727 , p5
1728 , p6
1729 , p7
1730 , p8
1731 , p9
1732 , p10
1733 );
1734 return s;
1735}
1736template<
1737typename P0
1738, typename P1
1739, typename P2
1740, typename P3
1741, typename P4
1742, typename P5
1743, typename P6
1744, typename P7
1745, typename P8
1746, typename P9
1747, typename P10
1748, typename P11
1749>
1750inline zfstring zfstr(
1751 ZF_IN const zfchar *fmt
1752 , ZF_IN P0 const &p0
1753 , ZF_IN P1 const &p1
1754 , ZF_IN P2 const &p2
1755 , ZF_IN P3 const &p3
1756 , ZF_IN P4 const &p4
1757 , ZF_IN P5 const &p5
1758 , ZF_IN P6 const &p6
1759 , ZF_IN P7 const &p7
1760 , ZF_IN P8 const &p8
1761 , ZF_IN P9 const &p9
1762 , ZF_IN P10 const &p10
1763 , ZF_IN P11 const &p11
1764 ) {
1765 zfstring s;
1766 zfstringAppend(s, fmt
1767 , p0
1768 , p1
1769 , p2
1770 , p3
1771 , p4
1772 , p5
1773 , p6
1774 , p7
1775 , p8
1776 , p9
1777 , p10
1778 , p11
1779 );
1780 return s;
1781}
1782template<
1783typename P0
1784, typename P1
1785, typename P2
1786, typename P3
1787, typename P4
1788, typename P5
1789, typename P6
1790, typename P7
1791, typename P8
1792, typename P9
1793, typename P10
1794, typename P11
1795, typename P12
1796>
1797inline zfstring zfstr(
1798 ZF_IN const zfchar *fmt
1799 , ZF_IN P0 const &p0
1800 , ZF_IN P1 const &p1
1801 , ZF_IN P2 const &p2
1802 , ZF_IN P3 const &p3
1803 , ZF_IN P4 const &p4
1804 , ZF_IN P5 const &p5
1805 , ZF_IN P6 const &p6
1806 , ZF_IN P7 const &p7
1807 , ZF_IN P8 const &p8
1808 , ZF_IN P9 const &p9
1809 , ZF_IN P10 const &p10
1810 , ZF_IN P11 const &p11
1811 , ZF_IN P12 const &p12
1812 ) {
1813 zfstring s;
1814 zfstringAppend(s, fmt
1815 , p0
1816 , p1
1817 , p2
1818 , p3
1819 , p4
1820 , p5
1821 , p6
1822 , p7
1823 , p8
1824 , p9
1825 , p10
1826 , p11
1827 , p12
1828 );
1829 return s;
1830}
1831template<
1832typename P0
1833, typename P1
1834, typename P2
1835, typename P3
1836, typename P4
1837, typename P5
1838, typename P6
1839, typename P7
1840, typename P8
1841, typename P9
1842, typename P10
1843, typename P11
1844, typename P12
1845, typename P13
1846>
1847inline zfstring zfstr(
1848 ZF_IN const zfchar *fmt
1849 , ZF_IN P0 const &p0
1850 , ZF_IN P1 const &p1
1851 , ZF_IN P2 const &p2
1852 , ZF_IN P3 const &p3
1853 , ZF_IN P4 const &p4
1854 , ZF_IN P5 const &p5
1855 , ZF_IN P6 const &p6
1856 , ZF_IN P7 const &p7
1857 , ZF_IN P8 const &p8
1858 , ZF_IN P9 const &p9
1859 , ZF_IN P10 const &p10
1860 , ZF_IN P11 const &p11
1861 , ZF_IN P12 const &p12
1862 , ZF_IN P13 const &p13
1863 ) {
1864 zfstring s;
1865 zfstringAppend(s, fmt
1866 , p0
1867 , p1
1868 , p2
1869 , p3
1870 , p4
1871 , p5
1872 , p6
1873 , p7
1874 , p8
1875 , p9
1876 , p10
1877 , p11
1878 , p12
1879 , p13
1880 );
1881 return s;
1882}
1883template<
1884typename P0
1885, typename P1
1886, typename P2
1887, typename P3
1888, typename P4
1889, typename P5
1890, typename P6
1891, typename P7
1892, typename P8
1893, typename P9
1894, typename P10
1895, typename P11
1896, typename P12
1897, typename P13
1898, typename P14
1899>
1900inline zfstring zfstr(
1901 ZF_IN const zfchar *fmt
1902 , ZF_IN P0 const &p0
1903 , ZF_IN P1 const &p1
1904 , ZF_IN P2 const &p2
1905 , ZF_IN P3 const &p3
1906 , ZF_IN P4 const &p4
1907 , ZF_IN P5 const &p5
1908 , ZF_IN P6 const &p6
1909 , ZF_IN P7 const &p7
1910 , ZF_IN P8 const &p8
1911 , ZF_IN P9 const &p9
1912 , ZF_IN P10 const &p10
1913 , ZF_IN P11 const &p11
1914 , ZF_IN P12 const &p12
1915 , ZF_IN P13 const &p13
1916 , ZF_IN P14 const &p14
1917 ) {
1918 zfstring s;
1919 zfstringAppend(s, fmt
1920 , p0
1921 , p1
1922 , p2
1923 , p3
1924 , p4
1925 , p5
1926 , p6
1927 , p7
1928 , p8
1929 , p9
1930 , p10
1931 , p11
1932 , p12
1933 , p13
1934 , p14
1935 );
1936 return s;
1937}
1938template<
1939typename P0
1940, typename P1
1941, typename P2
1942, typename P3
1943, typename P4
1944, typename P5
1945, typename P6
1946, typename P7
1947, typename P8
1948, typename P9
1949, typename P10
1950, typename P11
1951, typename P12
1952, typename P13
1953, typename P14
1954, typename P15
1955>
1956inline zfstring zfstr(
1957 ZF_IN const zfchar *fmt
1958 , ZF_IN P0 const &p0
1959 , ZF_IN P1 const &p1
1960 , ZF_IN P2 const &p2
1961 , ZF_IN P3 const &p3
1962 , ZF_IN P4 const &p4
1963 , ZF_IN P5 const &p5
1964 , ZF_IN P6 const &p6
1965 , ZF_IN P7 const &p7
1966 , ZF_IN P8 const &p8
1967 , ZF_IN P9 const &p9
1968 , ZF_IN P10 const &p10
1969 , ZF_IN P11 const &p11
1970 , ZF_IN P12 const &p12
1971 , ZF_IN P13 const &p13
1972 , ZF_IN P14 const &p14
1973 , ZF_IN P15 const &p15
1974 ) {
1975 zfstring s;
1976 zfstringAppend(s, fmt
1977 , p0
1978 , p1
1979 , p2
1980 , p3
1981 , p4
1982 , p5
1983 , p6
1984 , p7
1985 , p8
1986 , p9
1987 , p10
1988 , p11
1989 , p12
1990 , p13
1991 , p14
1992 , p15
1993 );
1994 return s;
1995}
1996
1998
2000#endif // #ifndef _ZFI_zfstr_h_
2001
2002#include "zfstr_CoreType.h"
2003
#define ZFLIB_ZFCore
used to export symbols
Definition ZFCoreEnvDef.h:30
types for ZFFramework
_ZFT_t_zfchar zfchar
char wrapper
Definition ZFCoreTypeDef_CharType.h:17
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
#define ZF_IN_OUT_OPT
dummy macro that shows the param used as optional input and output
Definition ZFCoreTypeDef_ClassType.h:200
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
void zftToStringT(zfstring &s, T_Type const &v)
util function to obtain object info
Definition ZFCoreTypeDef_OtherType.h:182
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
void zfstringAppend(zfstring &s, const zfchar *fmt)
see zfstr
Definition zfstr.h:66
zfstring zfstr(const zfchar *fmt=zft_zfnull)
string format util
Definition zfstr.h:59
declare output for core types