Я хочу использовать приведенный ниже сборщик мусора, но при компиляции я получаю много ошибок с GCC, но не с VSC ++, т.е. это.
list<GCInfo<T> >::iterator p; ---> Ожидается ';' после выражения
list<GCInfo<T> >::iterator p;
А вот и библиотека.
http://www.devarticles.com/c/a/Cplusplus/A-Simple-Garbage-Collector-for-C-plus-plus/3/
Предполагая, что T является параметром шаблона, вам нужно typename:
T
typename
typename list<GCInfo<T> >::iterator p; ^^^^^^^^
Подробнее о том, когда и почему требуется typename, см. Часто задаваемые вопросы по переполнению стека C ++ «Где и почему я должен ставить template и typename на зависимые имена?»
template