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?
tm is not reserved by the standard, and I would doubt that the g++ people would use tm as a namespace name either. (And even if they did, it wouldn't matter: you can always add to a namespace at any time.) So there was something else going on.
Edit: Or, hey, structs are namespaces too, aren't they. Never mind, then.
I'm guessing there was some sort of namespace name issue due to "struct tm" in <time.h>.
Thanks! That makes sense.