I currently have a machine with an Opteron 275 (2.2Ghz), which is a dual core CPU, and 4GB of RAM, along with a very fast hard drive. I find that when compiling even somewhat simple projects that use C++ templates (think boost, etc.), my compile times can take quite a while (minutes for small things, much longer for bigger projects). Unfortunately only one of the cores is pegged at 100%, so I know it’s not the I/O, and it would seem that there is no way to take advantage of the other core for C++ compilation?
Share
Compile time problems with templates are often link problems, rather than compilation problems.
Using templates internally in your .cpp files, but making sure that the headers don’t actually include the template, is a good way to fix those. That can be done by either forward declaring the class, or wrapping your implementation class in an abstract base class that just declares the public members (the Pimpl Idiom, basically).