[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:55:48 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:

> "give a taste" of how the check would improve code.

And with this, It would be easier to reason why this check should be turned on, even if there are currently no violations (because we live in C++17 in LLVM)

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


More information about the cfe-commits mailing list