[LLVMdev] select1st, select2nd

Chris Lattner clattner at apple.com
Sat Jul 16 10:20:17 PDT 2011


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



More information about the llvm-dev mailing list