___read
#define ___rd_first(fn, src, a) ___read(fn, &__t, ___type(src), src, a);
___read(fn, &__t, ___type(___nolast(__VA_ARGS__)), __t, ___last(__VA_ARGS__));
___read(fn, dst, ___type(src), src, a);
___read(fn, dst, ___type(src, ___nolast(__VA_ARGS__)), __t, \