[PATCH] D126803: [llvm][analyzer][NFC] Introduce SFINAE for specializing FoldingSetTraits

Aman LaChapelle via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 2 07:57:00 PDT 2022


bzcheeseman added inline comments.


================
Comment at: llvm/include/llvm/ADT/FoldingSet.h:260
 /// to FoldingSets that were not originally designed to have that behavior.
-template<typename T> struct FoldingSetTrait
-  : public DefaultFoldingSetTrait<T> {};
+template <typename T, typename = /*For SFINAE*/ void>
+struct FoldingSetTrait : public DefaultFoldingSetTrait<T> {};
----------------
supernit: I generally prefer named template parameters - can call it something like `Enable`?


================
Comment at: llvm/include/llvm/ADT/FoldingSet.h:834
+struct FoldingSetTrait<
+    T, typename std::enable_if_t<std::is_enum<T>::value, void>> {
+  static void Profile(const T &X, FoldingSetNodeID &ID) {
----------------
supernit - the default type of std::enable_if_t is `void` so you don't need to specify it :)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126803/new/

https://reviews.llvm.org/D126803



More information about the llvm-commits mailing list