
While fine-tuning my units code, I've run into something that's puzzling to me. Here's a minimal example: if I try to compile this program: #include <iostream> namespace boost { namespace units { typedef int time; typedef double length; } // namespace units } // namespace boost int main(void) { using namespace boost::units; length x = 10; time t = 2; return 0; } I get an error : "'time' not declared in this scope". However, if I fully qualify the namespace for "time", it compiles fine: #include <iostream> namespace boost { namespace units { typedef int time; typedef double length; } // namespace units } // namespace boost int main(void) { using namespace boost::units; length x = 10; boost::units::time t = 2; return 0; } This is on Xcode 2.4 (gcc 4.0.1). I assume that there is a definition of "time" somewhere in the standard headers that is polluting the global namespace. Has anyone run into this before? Any suggestions? Matthias