В макросе отсутствует скобка.
#define tr(c,i) for(typeof((c).begin() i = (c).begin(); i != (c).end(); i++)
^
Need ) here
Попробуйте исправить это и посмотрите, какие ошибки вы получите.
Небольшое примечание 1: при итерации используйте ++i
вместо i++
, так как первое часто может быть быстрее для итераторов.
Незначительное примечание 2: typeof
является специфическим расширением GCC. Ваш код не будет компилироваться на других компиляторах.