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