I had this really weird problem where I had defined some classes in a custom namespace, but couldn't get it to compile because the compiler couldn't find these classes within the namespace. After fiddling with it for several hours, I thought, "hey, maybe I should try changing the name of the namespace!" And it worked.
So now I'm wondering: why is the namespace "tm" causing problems?
The only header files I was including were standard headers from g++ 4.2. Is there a namespace "tm" hidden somewhere in the g++ library? Or is it something to do with the c++ standard itself?