[clang-tools-extra] [clang-tidy] Add new check: `readability-redundant-typename` (PR #161574)

Baranov Victor via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 1 13:53:41 PDT 2025


================
@@ -0,0 +1,26 @@
+.. title:: clang-tidy - readability-redundant-typename
+
+readability-redundant-typename
+==============================
+
+Finds unnecessary uses of the ``typename`` keyword.
+
+``typename`` is unnecessary in two cases. First, before non-dependent names:
+
+.. code-block:: c++
+
+  /* typename */ std::vector<int>::size_type size;
+
+And second, since C++20, before dependent names that appear in a context
+where only a type is allowed (the following example shows just a few of them):
+
+.. code-block:: c++
+
+  template <typename T>
+  using trait = /* typename */ T::type;
+
+  template <typename T>
+  struct S {
+    /* typename */ T::type variable;
+    /* typename */ T::type function(/* typename */ T::type);
+  };
----------------
vbvictor wrote:

Oh, okay maybe then not all cases but at least some interesting once from `C++20`.
Maybe thats my personal bias, but I'd like some examples in docs that "give a taste" how the check would improve code.

https://github.com/llvm/llvm-project/pull/161574


More information about the cfe-commits mailing list