[PATCH] D16053: contains() convenience function

Benjamin Kramer via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 11 09:09:53 PST 2016


I have a slight preference for the equal_to solution because it's
standard C++14, but no strong opinion here.

On Mon, Jan 11, 2016 at 5:43 PM, David Blaikie <dblaikie at gmail.com> wrote:
> Benjamin and I were just discussing a similar piece of code to this in a
> review
>
> I think we were settling on something like "any_of(R, is_equal<>(E))" but
> I'm OK adding something like "contains" or "is_contained" (contains seems
> like the right name, but might be too often used elsewhere to be
> convenient?)
>
> Benjamin - any thoughts/preferences here?
>
> On Mon, Jan 11, 2016 at 5:26 AM, Alexander Droste via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>>
>> Alexander_Droste updated the summary for this revision.
>> Alexander_Droste added a reviewer: dblaikie.
>> Alexander_Droste updated this revision to Diff 44471.
>> Alexander_Droste added a comment.
>>
>> - changed name to `is_contained()` because `contains()` caused name
>> conflicts
>> - adapted the style of other functions in `STLExtras.h`
>>
>> - @David: I hope its ok that I added you as a reviewer. Googling for
>> 'stlextras llvm reviewer' you
>>
>> were the first author that appeared.
>>
>>
>> http://reviews.llvm.org/D16053
>>
>> Files:
>>   include/llvm/ADT/STLExtras.h
>>
>> Index: include/llvm/ADT/STLExtras.h
>> ===================================================================
>> --- include/llvm/ADT/STLExtras.h
>> +++ include/llvm/ADT/STLExtras.h
>> @@ -386,6 +386,13 @@
>>    return std::find(Range.begin(), Range.end(), val);
>>  }
>>
>> +/// Wrapper function around std::find to detect if an element exists
>> +/// in a container.
>> +template <typename R, typename E>
>> +bool is_contained(R && Range, const E &Element) {
>> +  return std::find(Range.begin(), Range.end(), Element) != Range.end();
>> +}
>> +
>>
>> //===----------------------------------------------------------------------===//
>>  //     Extra additions to <memory>
>>
>> //===----------------------------------------------------------------------===//
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>


More information about the llvm-commits mailing list