#include <iostream>
using namespace std;
struct Apple {
int weight;
int color;
};
struct Car {
int weight;
int wheels;
int color;
};
int *color(Apple *a) {
return (int *)((char *)a + 4);
}
int *color(Car *a) {
return (int *)((char *)a + 8);
}
template<typename T>
void foo(T *a, int v) {
//a->color = 71;
*color(a) = v;
}
int main() {
auto car = Car {};
auto apple = Apple {};
foo(&car, 1);
foo(&apple, 2);
cout << car.color << " " << apple.color << "\n";
return 0;
}