>>>>> "Angus" == Angus Leeming <[EMAIL PROTECTED]> writes:
Angus> How would that help? enums cannot be forward declared, so any Angus> header file declaring a function that is passed an enum must Angus> #include the header file that defines the enum. It makes not a Angus> jot of difference whether the enum is LColor::color or Angus> LColor_color. The difference is whether one has to include std_string.h and boost/scoped_ptr.hpp. I'd be surprised if this was negligible (especially the second one). Angus> That's why 270+ object files are dependent upon LColor.h. If I understand correctly, the bulk of that is lyxfont.h. Angus> That means any change to the enum results in 270 files being Angus> recompiled. 200 of them unnecessarily. (I have after all spent Angus> some time analyzing the dependencies ;-) Yes, I know that and I am very impressed... Angus> My proposal has refined. See attached. The template is now Angus> trivial. I understand that you see things on terms of dependencies. I am more interested in compile times and disk space. I am not sure that the template solution is necessarily better in this respect... Also, I thought it was not possible to forward-declare a template instantiation. JMarc