
Rob Stewart wrote:
From: FlSt@gmx.de
Rob Stewart wrote:
From: FlSt@gmx.de
I just tried that version tonight. So far, it has taken well over 30 minutes to compile junction_example.cpp, and it's still
It took just over 39 minutes to complete.
g++ 4.0.1 is a lot faster, but needs more RAM (as I saw with top). Compilation times of my test program with the new version: g++4.0.1 1,5 minutes g++3.3.6 7,5 minutes g++2.95 3,75 minutes I'm using Linux and tested the compilers with -O0 -g -Wall -W options (no optimizing and debug infos) and the "time" command for the compilation time measurement. I think comparisons with optimizing activated makes no sense, because the compiler version are to different.
test program. I removed the xxx_of functions for STL-Iterators, because Ranges of STL-Iterators can be generated with make_iterator_range( begin, end )
I haven't looked at supporting pairs of iterators yet. You're right that one can use make_iterator_range, but if we can use a pair right out of the box, all the better
see below. There is another reason why I removed them.
I switched back to your test program and it again took a very long time to compile. When I ran it, it dumped core due to what looks like infinite recursion (SIGSEGV).
No, the problem is that you removed the storage of the Range. When you create a instance of a junction with the STL-iterator-range with boost::range::make_iterator_range() it creates a temporary object which is lost after creating the junction creation. That was the secons reason I removed the STL Ranges support. ;-) In my new version (v9) I use references to the range. ( But I think the cost of holding a range would be minimal. )
BTW, you should consider writing your tests such that you don't have to visually inspect each test each run to decide whether you're getting the correct answer. Do you save a vetted copy of the output and diff the output of a new run against that each time?
No :-). I have seperate test programs, which I haven't put into the zip file, because they are still under construction.
Also, you should not put your code directly into namespaceboost. Following Boost guidelines, you'd create a "junctions" namespace for everything.
Ok, will be done for the next version Sincerly Florian