Stupid me I forgot to post the error messages, here they are. Regarding this line: if ((*i)->name ^ *key) These two errors: table.h: base operand of `->' is not a pointer table.h: no match for 'operator*' in '*key' And regarding this line: return (T)((**i)()); this error: table.h: invalid type argument of `unary *' These are the last 3 errors I have, all the others are already ironed out. Thanks for your time and your help efgee -- View this message in context: http://www.nabble.com/Convert-VisualC%2B%2B-template-to-gcc-tf4563603.html#a13026322 Sent from the gcc - Help mailing list archive at Nabble.com.