@@ -389,102 +389,150 @@ TINYFORMAT_DEFINE_FORMATVALUE_CHAR(unsigned char)
389389// extra versions by hand.
390390
391391/* [[[cog
392- maxParams = 16
392+ maxParams = 24
393393
394394def makeCommaSepLists(lineTemplate, elemTemplate, startInd=1):
395- for j in range(startInd,maxParams+1):
396- list = ', '.join([ elemTemplate % {'i':i} for i in range(startInd,j+1)])
397- cog.outl(lineTemplate % {'j':j , 'list':list })
395+ for line in range(startInd,maxParams+1):
396+ elements = elemTemplate % { 'last': line - 1, 'line': line }
397+ cog.outl(lineTemplate % {'line': line , 'list': elements })
398398
399- makeCommaSepLists('#define TINYFORMAT_ARGTYPES_%(j)d %(list)s',
400- 'class T%(i)d')
399+ cog.outl()
400+ cog.outl('#define TINYFORMAT_ARGTYPES_1 typename T1')
401+ makeCommaSepLists('#define TINYFORMAT_ARGTYPES_%(line)d %(list)s',
402+ 'TINYFORMAT_ARGTYPES_%(last)d, typename T%(line)d',
403+ startInd = 2)
401404
402405cog.outl()
403- makeCommaSepLists('#define TINYFORMAT_VARARGS_%(j)d %(list)s',
404- 'const T%(i)d& v%(i)d')
406+ cog.outl('#define TINYFORMAT_VARARGS_1 const T1& v1')
407+ makeCommaSepLists('#define TINYFORMAT_VARARGS_%(line)d %(list)s',
408+ 'TINYFORMAT_VARARGS_%(last)d, const T%(line)d& v%(line)d',
409+ startInd = 2)
405410
406411cog.outl()
407- makeCommaSepLists('#define TINYFORMAT_PASSARGS_%(j)d %(list)s', 'v%(i)d')
412+ cog.outl('#define TINYFORMAT_PASSARGS_1 v1')
413+ makeCommaSepLists('#define TINYFORMAT_PASSARGS_%(line)d %(list)s',
414+ 'TINYFORMAT_PASSARGS_%(last)d, v%(line)d',
415+ startInd = 2)
408416
409417cog.outl()
410418cog.outl('#define TINYFORMAT_PASSARGS_TAIL_1')
411- makeCommaSepLists('#define TINYFORMAT_PASSARGS_TAIL_%(j)d , %(list)s',
412- 'v%(i)d', startInd = 2)
419+ makeCommaSepLists('#define TINYFORMAT_PASSARGS_TAIL_%(line)d %(list)s',
420+ 'TINYFORMAT_PASSARGS_TAIL_%(last)d, v%(line)d',
421+ startInd = 2)
422+
423+ lines = []
424+ newline = " \\\n "
425+ for line in range(1,maxParams+1):
426+ lines.append(' m(%d)' % (line,))
427+ if line % 15 == 0: lines.append(newline)
413428
414429cog.outl()
415- cog.outl('#define TINYFORMAT_FOREACH_ARGNUM(m) \\\n ' +
416- ' '.join(['m(%d)' % (j,) for j in range(1,maxParams+1)]))
430+ cog.outl('#define TINYFORMAT_FOREACH_ARGNUM(m)' + newline + ''.join(lines))
417431]]]*/
418- #define TINYFORMAT_ARGTYPES_1 class T1
419- #define TINYFORMAT_ARGTYPES_2 class T1 , class T2
420- #define TINYFORMAT_ARGTYPES_3 class T1 , class T2 , class T3
421- #define TINYFORMAT_ARGTYPES_4 class T1 , class T2 , class T3 , class T4
422- #define TINYFORMAT_ARGTYPES_5 class T1 , class T2 , class T3 , class T4 , class T5
423- #define TINYFORMAT_ARGTYPES_6 class T1 , class T2 , class T3 , class T4 , class T5 , class T6
424- #define TINYFORMAT_ARGTYPES_7 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7
425- #define TINYFORMAT_ARGTYPES_8 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8
426- #define TINYFORMAT_ARGTYPES_9 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9
427- #define TINYFORMAT_ARGTYPES_10 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10
428- #define TINYFORMAT_ARGTYPES_11 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11
429- #define TINYFORMAT_ARGTYPES_12 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12
430- #define TINYFORMAT_ARGTYPES_13 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13
431- #define TINYFORMAT_ARGTYPES_14 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14
432- #define TINYFORMAT_ARGTYPES_15 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15
433- #define TINYFORMAT_ARGTYPES_16 class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16
432+
433+ #define TINYFORMAT_ARGTYPES_1 typename T1
434+ #define TINYFORMAT_ARGTYPES_2 TINYFORMAT_ARGTYPES_1, typename T2
435+ #define TINYFORMAT_ARGTYPES_3 TINYFORMAT_ARGTYPES_2, typename T3
436+ #define TINYFORMAT_ARGTYPES_4 TINYFORMAT_ARGTYPES_3, typename T4
437+ #define TINYFORMAT_ARGTYPES_5 TINYFORMAT_ARGTYPES_4, typename T5
438+ #define TINYFORMAT_ARGTYPES_6 TINYFORMAT_ARGTYPES_5, typename T6
439+ #define TINYFORMAT_ARGTYPES_7 TINYFORMAT_ARGTYPES_6, typename T7
440+ #define TINYFORMAT_ARGTYPES_8 TINYFORMAT_ARGTYPES_7, typename T8
441+ #define TINYFORMAT_ARGTYPES_9 TINYFORMAT_ARGTYPES_8, typename T9
442+ #define TINYFORMAT_ARGTYPES_10 TINYFORMAT_ARGTYPES_9, typename T10
443+ #define TINYFORMAT_ARGTYPES_11 TINYFORMAT_ARGTYPES_10, typename T11
444+ #define TINYFORMAT_ARGTYPES_12 TINYFORMAT_ARGTYPES_11, typename T12
445+ #define TINYFORMAT_ARGTYPES_13 TINYFORMAT_ARGTYPES_12, typename T13
446+ #define TINYFORMAT_ARGTYPES_14 TINYFORMAT_ARGTYPES_13, typename T14
447+ #define TINYFORMAT_ARGTYPES_15 TINYFORMAT_ARGTYPES_14, typename T15
448+ #define TINYFORMAT_ARGTYPES_16 TINYFORMAT_ARGTYPES_15, typename T16
449+ #define TINYFORMAT_ARGTYPES_17 TINYFORMAT_ARGTYPES_16, typename T17
450+ #define TINYFORMAT_ARGTYPES_18 TINYFORMAT_ARGTYPES_17, typename T18
451+ #define TINYFORMAT_ARGTYPES_19 TINYFORMAT_ARGTYPES_18, typename T19
452+ #define TINYFORMAT_ARGTYPES_20 TINYFORMAT_ARGTYPES_19, typename T20
453+ #define TINYFORMAT_ARGTYPES_21 TINYFORMAT_ARGTYPES_20, typename T21
454+ #define TINYFORMAT_ARGTYPES_22 TINYFORMAT_ARGTYPES_21, typename T22
455+ #define TINYFORMAT_ARGTYPES_23 TINYFORMAT_ARGTYPES_22, typename T23
456+ #define TINYFORMAT_ARGTYPES_24 TINYFORMAT_ARGTYPES_23, typename T24
434457
435458#define TINYFORMAT_VARARGS_1 const T1& v1
436- #define TINYFORMAT_VARARGS_2 const T1& v1, const T2& v2
437- #define TINYFORMAT_VARARGS_3 const T1& v1, const T2& v2, const T3& v3
438- #define TINYFORMAT_VARARGS_4 const T1& v1, const T2& v2, const T3& v3, const T4& v4
439- #define TINYFORMAT_VARARGS_5 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5
440- #define TINYFORMAT_VARARGS_6 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6
441- #define TINYFORMAT_VARARGS_7 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7
442- #define TINYFORMAT_VARARGS_8 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8
443- #define TINYFORMAT_VARARGS_9 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9
444- #define TINYFORMAT_VARARGS_10 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10
445- #define TINYFORMAT_VARARGS_11 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11
446- #define TINYFORMAT_VARARGS_12 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12
447- #define TINYFORMAT_VARARGS_13 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13
448- #define TINYFORMAT_VARARGS_14 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13, const T14& v14
449- #define TINYFORMAT_VARARGS_15 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13, const T14& v14, const T15& v15
450- #define TINYFORMAT_VARARGS_16 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13, const T14& v14, const T15& v15, const T16& v16
459+ #define TINYFORMAT_VARARGS_2 TINYFORMAT_VARARGS_1, const T2& v2
460+ #define TINYFORMAT_VARARGS_3 TINYFORMAT_VARARGS_2, const T3& v3
461+ #define TINYFORMAT_VARARGS_4 TINYFORMAT_VARARGS_3, const T4& v4
462+ #define TINYFORMAT_VARARGS_5 TINYFORMAT_VARARGS_4, const T5& v5
463+ #define TINYFORMAT_VARARGS_6 TINYFORMAT_VARARGS_5, const T6& v6
464+ #define TINYFORMAT_VARARGS_7 TINYFORMAT_VARARGS_6, const T7& v7
465+ #define TINYFORMAT_VARARGS_8 TINYFORMAT_VARARGS_7, const T8& v8
466+ #define TINYFORMAT_VARARGS_9 TINYFORMAT_VARARGS_8, const T9& v9
467+ #define TINYFORMAT_VARARGS_10 TINYFORMAT_VARARGS_9, const T10& v10
468+ #define TINYFORMAT_VARARGS_11 TINYFORMAT_VARARGS_10, const T11& v11
469+ #define TINYFORMAT_VARARGS_12 TINYFORMAT_VARARGS_11, const T12& v12
470+ #define TINYFORMAT_VARARGS_13 TINYFORMAT_VARARGS_12, const T13& v13
471+ #define TINYFORMAT_VARARGS_14 TINYFORMAT_VARARGS_13, const T14& v14
472+ #define TINYFORMAT_VARARGS_15 TINYFORMAT_VARARGS_14, const T15& v15
473+ #define TINYFORMAT_VARARGS_16 TINYFORMAT_VARARGS_15, const T16& v16
474+ #define TINYFORMAT_VARARGS_17 TINYFORMAT_VARARGS_16, const T17& v17
475+ #define TINYFORMAT_VARARGS_18 TINYFORMAT_VARARGS_17, const T18& v18
476+ #define TINYFORMAT_VARARGS_19 TINYFORMAT_VARARGS_18, const T19& v19
477+ #define TINYFORMAT_VARARGS_20 TINYFORMAT_VARARGS_19, const T20& v20
478+ #define TINYFORMAT_VARARGS_21 TINYFORMAT_VARARGS_20, const T21& v21
479+ #define TINYFORMAT_VARARGS_22 TINYFORMAT_VARARGS_21, const T22& v22
480+ #define TINYFORMAT_VARARGS_23 TINYFORMAT_VARARGS_22, const T23& v23
481+ #define TINYFORMAT_VARARGS_24 TINYFORMAT_VARARGS_23, const T24& v24
451482
452483#define TINYFORMAT_PASSARGS_1 v1
453- #define TINYFORMAT_PASSARGS_2 v1, v2
454- #define TINYFORMAT_PASSARGS_3 v1, v2, v3
455- #define TINYFORMAT_PASSARGS_4 v1, v2, v3, v4
456- #define TINYFORMAT_PASSARGS_5 v1, v2, v3, v4, v5
457- #define TINYFORMAT_PASSARGS_6 v1, v2, v3, v4, v5, v6
458- #define TINYFORMAT_PASSARGS_7 v1, v2, v3, v4, v5, v6, v7
459- #define TINYFORMAT_PASSARGS_8 v1, v2, v3, v4, v5, v6, v7, v8
460- #define TINYFORMAT_PASSARGS_9 v1, v2, v3, v4, v5, v6, v7, v8, v9
461- #define TINYFORMAT_PASSARGS_10 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10
462- #define TINYFORMAT_PASSARGS_11 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11
463- #define TINYFORMAT_PASSARGS_12 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12
464- #define TINYFORMAT_PASSARGS_13 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13
465- #define TINYFORMAT_PASSARGS_14 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14
466- #define TINYFORMAT_PASSARGS_15 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15
467- #define TINYFORMAT_PASSARGS_16 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16
484+ #define TINYFORMAT_PASSARGS_2 TINYFORMAT_PASSARGS_1, v2
485+ #define TINYFORMAT_PASSARGS_3 TINYFORMAT_PASSARGS_2, v3
486+ #define TINYFORMAT_PASSARGS_4 TINYFORMAT_PASSARGS_3, v4
487+ #define TINYFORMAT_PASSARGS_5 TINYFORMAT_PASSARGS_4, v5
488+ #define TINYFORMAT_PASSARGS_6 TINYFORMAT_PASSARGS_5, v6
489+ #define TINYFORMAT_PASSARGS_7 TINYFORMAT_PASSARGS_6, v7
490+ #define TINYFORMAT_PASSARGS_8 TINYFORMAT_PASSARGS_7, v8
491+ #define TINYFORMAT_PASSARGS_9 TINYFORMAT_PASSARGS_8, v9
492+ #define TINYFORMAT_PASSARGS_10 TINYFORMAT_PASSARGS_9, v10
493+ #define TINYFORMAT_PASSARGS_11 TINYFORMAT_PASSARGS_10, v11
494+ #define TINYFORMAT_PASSARGS_12 TINYFORMAT_PASSARGS_11, v12
495+ #define TINYFORMAT_PASSARGS_13 TINYFORMAT_PASSARGS_12, v13
496+ #define TINYFORMAT_PASSARGS_14 TINYFORMAT_PASSARGS_13, v14
497+ #define TINYFORMAT_PASSARGS_15 TINYFORMAT_PASSARGS_14, v15
498+ #define TINYFORMAT_PASSARGS_16 TINYFORMAT_PASSARGS_15, v16
499+ #define TINYFORMAT_PASSARGS_17 TINYFORMAT_PASSARGS_16, v17
500+ #define TINYFORMAT_PASSARGS_18 TINYFORMAT_PASSARGS_17, v18
501+ #define TINYFORMAT_PASSARGS_19 TINYFORMAT_PASSARGS_18, v19
502+ #define TINYFORMAT_PASSARGS_20 TINYFORMAT_PASSARGS_19, v20
503+ #define TINYFORMAT_PASSARGS_21 TINYFORMAT_PASSARGS_20, v21
504+ #define TINYFORMAT_PASSARGS_22 TINYFORMAT_PASSARGS_21, v22
505+ #define TINYFORMAT_PASSARGS_23 TINYFORMAT_PASSARGS_22, v23
506+ #define TINYFORMAT_PASSARGS_24 TINYFORMAT_PASSARGS_23, v24
468507
469508#define TINYFORMAT_PASSARGS_TAIL_1
470- #define TINYFORMAT_PASSARGS_TAIL_2 , v2
471- #define TINYFORMAT_PASSARGS_TAIL_3 , v2, v3
472- #define TINYFORMAT_PASSARGS_TAIL_4 , v2, v3, v4
473- #define TINYFORMAT_PASSARGS_TAIL_5 , v2, v3, v4, v5
474- #define TINYFORMAT_PASSARGS_TAIL_6 , v2, v3, v4, v5, v6
475- #define TINYFORMAT_PASSARGS_TAIL_7 , v2, v3, v4, v5, v6, v7
476- #define TINYFORMAT_PASSARGS_TAIL_8 , v2, v3, v4, v5, v6, v7, v8
477- #define TINYFORMAT_PASSARGS_TAIL_9 , v2, v3, v4, v5, v6, v7, v8, v9
478- #define TINYFORMAT_PASSARGS_TAIL_10 , v2, v3, v4, v5, v6, v7, v8, v9, v10
479- #define TINYFORMAT_PASSARGS_TAIL_11 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11
480- #define TINYFORMAT_PASSARGS_TAIL_12 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12
481- #define TINYFORMAT_PASSARGS_TAIL_13 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13
482- #define TINYFORMAT_PASSARGS_TAIL_14 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14
483- #define TINYFORMAT_PASSARGS_TAIL_15 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15
484- #define TINYFORMAT_PASSARGS_TAIL_16 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16
509+ #define TINYFORMAT_PASSARGS_TAIL_2 TINYFORMAT_PASSARGS_TAIL_1, v2
510+ #define TINYFORMAT_PASSARGS_TAIL_3 TINYFORMAT_PASSARGS_TAIL_2, v3
511+ #define TINYFORMAT_PASSARGS_TAIL_4 TINYFORMAT_PASSARGS_TAIL_3, v4
512+ #define TINYFORMAT_PASSARGS_TAIL_5 TINYFORMAT_PASSARGS_TAIL_4, v5
513+ #define TINYFORMAT_PASSARGS_TAIL_6 TINYFORMAT_PASSARGS_TAIL_5, v6
514+ #define TINYFORMAT_PASSARGS_TAIL_7 TINYFORMAT_PASSARGS_TAIL_6, v7
515+ #define TINYFORMAT_PASSARGS_TAIL_8 TINYFORMAT_PASSARGS_TAIL_7, v8
516+ #define TINYFORMAT_PASSARGS_TAIL_9 TINYFORMAT_PASSARGS_TAIL_8, v9
517+ #define TINYFORMAT_PASSARGS_TAIL_10 TINYFORMAT_PASSARGS_TAIL_9, v10
518+ #define TINYFORMAT_PASSARGS_TAIL_11 TINYFORMAT_PASSARGS_TAIL_10, v11
519+ #define TINYFORMAT_PASSARGS_TAIL_12 TINYFORMAT_PASSARGS_TAIL_11, v12
520+ #define TINYFORMAT_PASSARGS_TAIL_13 TINYFORMAT_PASSARGS_TAIL_12, v13
521+ #define TINYFORMAT_PASSARGS_TAIL_14 TINYFORMAT_PASSARGS_TAIL_13, v14
522+ #define TINYFORMAT_PASSARGS_TAIL_15 TINYFORMAT_PASSARGS_TAIL_14, v15
523+ #define TINYFORMAT_PASSARGS_TAIL_16 TINYFORMAT_PASSARGS_TAIL_15, v16
524+ #define TINYFORMAT_PASSARGS_TAIL_17 TINYFORMAT_PASSARGS_TAIL_16, v17
525+ #define TINYFORMAT_PASSARGS_TAIL_18 TINYFORMAT_PASSARGS_TAIL_17, v18
526+ #define TINYFORMAT_PASSARGS_TAIL_19 TINYFORMAT_PASSARGS_TAIL_18, v19
527+ #define TINYFORMAT_PASSARGS_TAIL_20 TINYFORMAT_PASSARGS_TAIL_19, v20
528+ #define TINYFORMAT_PASSARGS_TAIL_21 TINYFORMAT_PASSARGS_TAIL_20, v21
529+ #define TINYFORMAT_PASSARGS_TAIL_22 TINYFORMAT_PASSARGS_TAIL_21, v22
530+ #define TINYFORMAT_PASSARGS_TAIL_23 TINYFORMAT_PASSARGS_TAIL_22, v23
531+ #define TINYFORMAT_PASSARGS_TAIL_24 TINYFORMAT_PASSARGS_TAIL_23, v24
485532
486533#define TINYFORMAT_FOREACH_ARGNUM (m ) \
487- m (1 ) m(2 ) m(3 ) m(4 ) m(5 ) m(6 ) m(7 ) m(8 ) m(9 ) m(10 ) m(11 ) m(12 ) m(13 ) m(14 ) m(15 ) m(16 )
534+ m (1 ) m(2 ) m(3 ) m(4 ) m(5 ) m(6 ) m(7 ) m(8 ) m(9 ) m(10 ) m(11 ) m(12 ) m(13 ) m(14 ) m(15 ) \
535+ m (16 ) m(17 ) m(18 ) m(19 ) m(20 ) m(21 ) m(22 ) m(23 ) m(24 )
488536// [[[end]]]
489537
490538
0 commit comments