
Hi,
I've written a little Meta Template Program which should calculate the
first 3 perfect numbers. ( range 1 - 500 )
The code is compilable if you use the range 1 - 30 really fast and works
correctly. But I've tried to compile the code but I can't get it finished.
Someone tried it on a Machine with 40 GB RAM and it now compiles for
more than 12 hours and uses more than 7.1 GB RAM ( the compilation )
I've tried it by myself with g++ 3.4.x and g++ 4.0.x and with VC++ 7.1
The code works on all tested compilers if the range would be 1 - 30 but
If the range is 1 - 500 VC++ says:
d:\boost\vc71\include\boost-1_33_1\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(48):
fatal error C1204: compiler limit: internal structure overflow.
( This seems to be a known bug in VC++
http://support.microsoft.com/default.aspx?scid=kb;en-us;883655 )
and g++ compiles and compiles and uses more and more RAM.
Is the code really so evil slow or is it a compiler Bug in g++?
Maybe anyone has an answer.
BR
evilissimo
#include