#include <iostream>
using namespace std;
struct counter{
#define COUNTER_MEMBER(TYPE,NAME) TYPE NAME;
COUNTER_MEMBER(int, a);
COUNTER_MEMBER(int, b);
};
int add_members(const counter &obj) {
int sum = 0;
#define COUNTER_MEMBER(TYPE,NAME) sum += obj.NAME;
COUNTER_MEMBER(int, a);
COUNTER_MEMBER(int, b);
return sum; /* I hope there was no overflow */
}
int main() {
counter obj;
obj.a = 10;
obj.b = 42;
cout << add_members(obj) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGNvdW50ZXJ7CiNkZWZpbmUgQ09VTlRFUl9NRU1CRVIoVFlQRSxOQU1FKSBUWVBFIE5BTUU7CkNPVU5URVJfTUVNQkVSKGludCwgYSk7CkNPVU5URVJfTUVNQkVSKGludCwgYik7Cn07CgoKaW50IGFkZF9tZW1iZXJzKGNvbnN0IGNvdW50ZXIgJm9iaikgewogIGludCBzdW0gPSAwOwojZGVmaW5lIENPVU5URVJfTUVNQkVSKFRZUEUsTkFNRSkgc3VtICs9IG9iai5OQU1FOwpDT1VOVEVSX01FTUJFUihpbnQsIGEpOwpDT1VOVEVSX01FTUJFUihpbnQsIGIpOwogIHJldHVybiBzdW07ICAvKiBJIGhvcGUgdGhlcmUgd2FzIG5vIG92ZXJmbG93ICovCn0KCmludCBtYWluKCkgewoJY291bnRlciBvYmo7CglvYmouYSA9IDEwOwoJb2JqLmIgPSA0MjsKCWNvdXQgPDwgYWRkX21lbWJlcnMob2JqKSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=