struct __ignore_t__ { }; __ignore_t__ __ignore__; forall(dtype T | sized(T)) __ignore_t__ ?=?(__ignore_t__ * dst, T src) { return *dst; } forall(dtype T | sized(T) | { void ?{}(T *, T); }) T ?=?(T * dst, __ignore_t__ src) { return *dst; } int main() { int x = 123, y = 456, z = 789; double j = 3.14, i = 8.77; [x, __ignore__, z] = [y, z, x]; [i, j, __ignore__] = [0, i, j]; printf("%d %d %d\n", x, y, z); printf("%g %g\n", i, j); }