On Jul 15, 2011, at 1:57 PM, David A. Greene wrote:
> Chris Lattner <clattner at apple.com> writes:
>
>> On Jul 15, 2011, at 12:35 PM, David Greene wrote:
>>
>>> I've run into a use case where I'd like to use a
mapped_iterator to
>>> iterator the 1st (or 2nd) items in a sequence of std::pairs. Does
>>> select1st/select2nd exist somewhere within LLVM or is there some
>>> equivalent? If not, I'll add it.
>>
>> Is this making the resultant loop simpler? C++ without lambda's
isn't
>> very friendly to functors, what is the before/after effect of doing
>> this?
>
> It's going to unify the DagInit constructors into one piece of code.
> The problem now is there are two constructors. One takes a vector of
> pairs and the other takes two vectors. They each make sense in their
> use contexts but it results in a lot of code duplication when moving
> DagInit to a uniqued pool implementation. I wanted to put the
> processing code in a third function which would be called with various
> types of iterators over those vectors.
The problem that I have with this sort of higher order metaprogramming in
C++'98 is that you're trading one set of complexity for another. Please
just introduce a helper function or something and duplicate the loop.
-Chris