Require explicit decorator on one arg constructors
We essentially follow this rule already, not relying on implicit
operators, although there are a number of cases where in theory we
could've implicitly constructed an object.
This commit enables the clang-tidy check.
Tested: Code compiles, passes clang-tidy.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ia428463313b075c69614fdb326e8c5c094e7adde
diff --git a/http/routing.hpp b/http/routing.hpp
index db25433..3a7b9c2 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
@@ -30,7 +30,7 @@
class BaseRule
{
public:
- BaseRule(const std::string& thisRule) : rule(thisRule)
+ explicit BaseRule(const std::string& thisRule) : rule(thisRule)
{}
virtual ~BaseRule() = default;
@@ -224,7 +224,7 @@
template <typename Req, typename... Args>
struct ReqHandlerWrapper
{
- ReqHandlerWrapper(Func fIn) : f(std::move(fIn))
+ explicit ReqHandlerWrapper(Func fIn) : f(std::move(fIn))
{}
void operator()(const Request& req,
@@ -328,7 +328,7 @@
using self_t = WebSocketRule;
public:
- WebSocketRule(const std::string& ruleIn) : BaseRule(ruleIn)
+ explicit WebSocketRule(const std::string& ruleIn) : BaseRule(ruleIn)
{}
void validate() override
@@ -467,7 +467,7 @@
class DynamicRule : public BaseRule, public RuleParameterTraits<DynamicRule>
{
public:
- DynamicRule(const std::string& ruleIn) : BaseRule(ruleIn)
+ explicit DynamicRule(const std::string& ruleIn) : BaseRule(ruleIn)
{}
void validate() override
@@ -545,7 +545,7 @@
public:
using self_t = TaggedRule<Args...>;
- TaggedRule(const std::string& ruleIn) : BaseRule(ruleIn)
+ explicit TaggedRule(const std::string& ruleIn) : BaseRule(ruleIn)
{}
void validate() override