#include <cstring>
#include <cassert>
#include <iostream>
struct A {
int var0;
int var1;
int var2;
};
struct B {
int var[3];
int other_vars[3];
// [...]
};
#define MAP(from, to, var) \
std::memcpy(&to.var##0, &from.var, sizeof(from.var));
int main()
{
A a;
B b;
a.var0 = 0;
a.var1 = 0;
a.var2 = 0;
b.var[0] = 1;
b.var[1] = 2;
b.var[2] = 3;
MAP(b, a, var);
assert(a.var0 == 1);
assert(a.var1 == 2);
assert(a.var2 == 3);
return 0;
}
#include <cstring>
#include <cassert>
#include <iostream>
struct A {
int var0;
int var1;
int var2;
};
struct B {
int var[3];
int other_vars[3];
// [...]
};
#define MAP(from, to, var) \
std::memcpy(&to.var##0, &from.var, sizeof(from.var));
int main()
{
A a;
B b;
a.var0 = 0;
a.var1 = 0;
a.var2 = 0;
b.var[0] = 1;
b.var[1] = 2;
b.var[2] = 3;
MAP(b, a, var);
assert(a.var0 == 1);
assert(a.var1 == 2);
assert(a.var2 == 3);
return 0;
}