
On Oct 3, 2006, at 11:43 AM, Theodore Papadopoulo wrote:
On Tue, 2006-10-03 at 08:58 -0400, Douglas Gregor wrote:
The above statement *was* correct. The new iterator concepts were initially voted into TR1, but were later removed. Perhaps someone who was in the room when it happened could tell you more, but I'm hoping the new iterator concepts come back for C++0x. Concepts (the language feature) and move semantics force us to fix the current iterator concepts.
Jumping in the discussion with a diverging topic, sorry... Speaking of iterators, is there any attempt at making OpenMP extensions to deal with iterators (or OpenMP friendly iterators).
We in the Open Systems Laboratory at Indiana University have an active research project that concerns making OpenMP more friendly for modern C++. Among other things, it will enable iterator loops to be parallelized with OpenMP directives. I don't know when the result will be stable enough for public consumption, but I expect we'll have a limited prototype available in the next six months.
Multicore processors are becoming the rule rather than the exception and OpenMP seems (I'm still making my first experiments) very constrained in the loops it can deal with (basically loop controled by signed integers). Of course, there are ways of using OpenMP with C++ and iterators, but this destroys quite a bit the programming model using loops over iterators.
Right. You have to jump through a lot of hoops to make OpenMP work with C++. We've managed to find workarounds and tricks that get some things working, but we really need extensions to OpenMP to make it usable in this context. Anyway, we're in danger of drifting off-topic for the Boost developer's list... Cheers, Doug