[PATCH] D30547: [clang-tidy] Forwarding reference overload in constructors
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 2 22:31:06 PST 2017
aaron.ballman added inline comments.
================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:23
+AST_MATCHER(QualType, isEnableIf) {
+ auto checkTemplate = [](const TemplateSpecializationType *Spec) {
+ if (!Spec || !Spec->getTemplateName().getAsTemplateDecl()) {
----------------
This should be `CheckTemplate` per our usual coding conventions.
================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:39
+ // Case: type parameter dependent (enable_if<is_integral<T>>).
+ if (auto Dependent = BaseType->getAs<DependentNameType>()) {
+ BaseType = Dependent->getQualifier()->getAsType();
----------------
Please use `auto *` (or `const auto ``).
================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:44
+ return true; // Case: enable_if_t< >.
+ } else if (auto Elaborated = BaseType->getAs<ElaboratedType>()) {
+ if (auto Qualifier = Elaborated->getQualifier()->getAsType()) {
----------------
Same here.
================
Comment at: clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp:119
+ if (const auto *Ctor = Result.Nodes.getNodeAs<FunctionDecl>("ctor")) {
+ auto Iter = Ctor->param_begin();
+ for (++Iter; Iter != Ctor->param_end(); ++Iter) {
----------------
I think this can be lowered into the for loop as `auto Iter = Ctor->param_begin() + 1`.
Repository:
rL LLVM
https://reviews.llvm.org/D30547
More information about the cfe-commits
mailing list