================
@@ -0,0 +1,62 @@
+.. title:: clang-tidy - bugprone-unsafe-crtp
+
+bugprone-unsafe-crtp
+====================
+
+Finds CRTP used in an error-prone way.
+
+If the constructor of a class intended to be used in a CRTP is public, then
+it allows users to construct that class on its own.
----------------
isuckatcs wrote:

Quoting [cppreference](https://en.cppreference.com/w/cpp/language/crtp):

> The [Curiously Recurring Template 
> Pattern](https://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern) 
> is an idiom in which a class X derives from a class template Y, taking a 
> template parameter Z, where Y is instantiated with Z = X.

What these lines in the documentain say is bad because they break the `Y is 
instantiated with Z = X` part. It doesn't do what this idiom says it should do, 
otherwise from the language's point of view it's perfectly legal.

https://github.com/llvm/llvm-project/pull/82403
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to