From: Benjamin Kramer Date: Thu, 15 Aug 2019 11:49:00 +0000 (+0000) Subject: [ADT] PointerUnion: Use C++14 constexpr std::min X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b189616165c39548c318ddceec2ae8713419f054;p=llvm [ADT] PointerUnion: Use C++14 constexpr std::min git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368992 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/ADT/PointerUnion.h b/include/llvm/ADT/PointerUnion.h index 2bcdf546c6e..93533de776b 100644 --- a/include/llvm/ADT/PointerUnion.h +++ b/include/llvm/ADT/PointerUnion.h @@ -54,21 +54,14 @@ struct PointerUnionTypeSelectorReturn< }; namespace pointer_union_detail { - constexpr int constexprMin(int a, int b) { return a < b ? a : b; } /// Determine the number of bits required to store integers with values < n. /// This is ceil(log2(n)). constexpr int bitsRequired(unsigned n) { return n > 1 ? 1 + bitsRequired((n + 1) / 2) : 0; } - // FIXME: In C++14, replace this with - // std::min({PointerLikeTypeTraits::NumLowBitsAvailable...}) - template constexpr int lowBitsAvailable() { - return PointerLikeTypeTraits::NumLowBitsAvailable; - } - template - constexpr int lowBitsAvailable() { - return constexprMin(lowBitsAvailable(), lowBitsAvailable()); + template constexpr int lowBitsAvailable() { + return std::min({PointerLikeTypeTraits::NumLowBitsAvailable...}); } /// Find the index of a type in a list of types. TypeIndex::Index