This is likely to be a *very* hard project. Indeed it may be impossible without rewriting a substantial part of tcc. tcc's parser and lexer are written by hand, so you'd have to wrap your head around that. Furthermore, getting proper late-time binding to work would require some pretty sophisticated knowledge of C. Building the correct metaobject system to handle templates is bound to be tricky. You have already mentioned (in a different thread) that you are new to C, so I would disuade you from picking up this project until you have more real world experience with C.
I propose two alternatives that might be good for you given your current experience with C. First, I highly recommend this book about a C object system called OOC
. Once you've read that, you might consider either (1) creating an ooc-like system that tcc can use, or (2) writing a preprocessor which could convert C++ constructs into C. This combination would give you some real practice working with some of the more sophisticated contructs in C, as well as wrapping your head around the more complicated issues in C++ such as managing namespaces, templates, inheritance, etc.