Будет нормально работать, если после typeof((c).begin()
будет лишний парен. Я не знаю, каков был первоначальный источник, но если на самом деле ему не хватало парена, то тот, кто его написал, вероятно, напечатал его неправильно.
#define tr(c,i) for(typeof((c).begin()) i = (c).begin(); i != (c).end(); i++)
Может использоваться вместо верхней строки цикла for над контейнером. например:
tr(myvector, i)
{
std::cout << *i;
}