[PATCH] Warn on explicit copy constructors.

Daniel Jasper djasper at google.com
Tue Apr 29 07:53:33 PDT 2014


================
Comment at: clang-tidy/google/GoogleTidyModule.cpp:34
@@ +33,3 @@
+// token including trailing whitespace.
+SourceRange FindToken(const SourceManager &Sources, LangOptions LangOpts,
+                      SourceLocation StartLoc, SourceLocation EndLoc,
----------------
IMO, passing in a lambda is a slight overkill here, at least until this is actually used for a second purpose. But ok.

================
Comment at: clang-tidy/google/GoogleTidyModule.cpp:62
@@ -38,1 +61,3 @@
     return;
+  if (Ctor->isExplicit() || Ctor->isCopyOrMoveConstructor()) {
+    if (Ctor->isExplicit() && Ctor->isCopyOrMoveConstructor()) {
----------------
So, this is:

  if (a || b) {
    if (a && b) {
      ..
    }
    return;
  }

I think this is easier to follow as:

  if (a && b) {
    ..
  }
  if (a || b)
    return;

And the latter if can actually be merged with the if concerning the parameter count.

http://reviews.llvm.org/D3541






More information about the cfe-commits mailing list