From d7f5675931137d03f20e1b976bb672d23e109cf0 Mon Sep 17 00:00:00 2001 From: danakj Date: Wed, 22 Feb 2017 11:45:06 -0500 Subject: [PATCH] Teach the explicit constructor check about constexpr. If a constructor is marked constexpr it evades the explicit constructor check right now, since the check only knows about the inline keyword. Teach it that constexpr can be used also. Change-Id: Ia76ddd00b69c5a76a385d22a2b9eb18b690bd8c8 Reviewed-on: https://chromium-review.googlesource.com/445932 Reviewed-by: Robbie Iannucci Reviewed-by: Aaron Gable Commit-Queue: Aaron Gable --- cpplint.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpplint.py b/cpplint.py index 6d23859f3..9e8e255f1 100755 --- a/cpplint.py +++ b/cpplint.py @@ -2752,7 +2752,8 @@ def CheckForNonStandardConstructs(filename, clean_lines, linenum, # Look for single-argument constructors that aren't marked explicit. # Technically a valid construct, but against style. explicit_constructor_match = Match( - r'\s+(?:inline\s+)?(explicit\s+)?(?:inline\s+)?%s\s*' + r'\s+(?:(?:inline|constexpr)\s+)*(explicit\s+)?' + r'(?:(?:inline|constexpr)\s+)*%s\s*' r'\(((?:[^()]|\([^()]*\))*)\)' % re.escape(base_classname), line)