[llvm] b5c6588 - [ADT] Simplify enable_if_struct_deref_supported (NFC) (#159939)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 20 18:41:59 PDT 2025
Author: Kazu Hirata
Date: 2025-09-20T18:41:55-07:00
New Revision: b5c658861426e01828b9f92ed767eaa1c83cb812
URL: https://github.com/llvm/llvm-project/commit/b5c658861426e01828b9f92ed767eaa1c83cb812
DIFF: https://github.com/llvm/llvm-project/commit/b5c658861426e01828b9f92ed767eaa1c83cb812.diff
LOG: [ADT] Simplify enable_if_struct_deref_supported (NFC) (#159939)
This patch simplifies enable_if_struct_deref_supported by using a
default template parameter as a temporary type alias. This way, we do
not have to repeat decltype(...).
Added:
Modified:
llvm/include/llvm/ADT/fallible_iterator.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/ADT/fallible_iterator.h b/llvm/include/llvm/ADT/fallible_iterator.h
index b42f62b67fd66..76fa054f2eb94 100644
--- a/llvm/include/llvm/ADT/fallible_iterator.h
+++ b/llvm/include/llvm/ADT/fallible_iterator.h
@@ -67,10 +67,9 @@ namespace llvm {
/// without requiring redundant error checks.
template <typename Underlying> class fallible_iterator {
private:
- template <typename T>
- using enable_if_struct_deref_supported = std::enable_if_t<
- !std::is_void<decltype(std::declval<T>().operator->())>::value,
- decltype(std::declval<T>().operator->())>;
+ template <typename T, typename U = decltype(std::declval<T>().operator->())>
+ using enable_if_struct_deref_supported =
+ std::enable_if_t<!std::is_void_v<U>, U>;
public:
/// Construct a fallible iterator that *cannot* be used as an end-of-range
More information about the llvm-commits
mailing list