X-Git-Url: http://git.harvie.cz/?p=svn%2FCll1h%2F.git;a=blobdiff_plain;f=crl1.h;fp=crl1.h;h=9d12b47f8f32c915fd06724a15a84e0b3914dd10;hp=54bf05597e7f54d48886805a2b277ab21fa25cc6;hb=8071c0c8d4761ff6b7f313c1d1648aad08154cf6;hpb=027a64112e02456f40a844060116c18078721a75 diff --git a/crl1.h b/crl1.h index 54bf055..9d12b47 100644 --- a/crl1.h +++ b/crl1.h @@ -154,6 +154,7 @@ unsigned RANDOM_SEED=0; #define repeat(N) for(int _i=0,_j=(N); _i++<_j;) #define for_each(ONE_T,ONE,ALL_T,...) for(_init_##ONE_T##_##ALL_T(_head_##ONE_T##_##ALL_T(ONE,__VA_ARGS__));_test_##ONE_T##_##ALL_T(ONE,__VA_ARGS__) || _free_##ONE_T##_##ALL_T(ONE,__VA_ARGS__);_next_##ONE_T##_##ALL_T(ONE,__VA_ARGS__)) #define count(ONE_T,ALL_T,...) _count_##ONE_T##_##ALL_T(__VA_ARGS__) +#define manufacture(OUT_T,OUT,ONE_T,ONE,ALL_T,...) if(_start_##ONE_T##OUT_T##_(OUT,count(ONE_T,ALL_T,__VA_ARGS__))) for_each(ONE_T,ONE,ALL_T,__VA_ARGS__) if(_append_##ONE_T##OUT_T##_(ONE)) #define _init_char_str(...) str _s=(__VA_ARGS__) #define _head_char_str(ONE,ALL) ONE=(ALL?*ALL:0),ALL #define _test_char_str(ONE,...) ONE