// RUN: %check_clang_tidy -std=c++20-or-later %s bugprone-forwarding-reference-overload %t template constexpr bool just_true = true; class Test { public: template Test(T &&n); // CHECK-NOTES: :[[@LINE-1]]:25: warning: constructor accepting a forwarding reference can hide the copy and move constructors Test(const Test &rhs); // CHECK-NOTES: :[[@LINE-1]]:3: note: copy constructor declared here }; class Test1 { public: // Guarded with requires expression. template requires requires { just_true; } Test1(T &&n); }; template concept JustTrueConcept = requires { just_true; }; class Test2 { public: // Guarded with concept requirement. template Test2(T &&n); };