I was wondering if there's a way around having to declare static variables only once when writing classes which are just in header files. I didn't think it could be done, but looking around the boost libraries, I've noticed that there are some libs which are entirely contained in header files but still seem to have static members. You can't just declare it outside of the class can you? Including the file in different translation units means a multiply defined static object, no?