clang-tidy fixes related to PR #3250

This commit is contained in:
Ralf W. Grosse-Kunstleve 2021-09-08 19:42:56 -07:00
parent 94a5c673bc
commit b4e1ac9a94
8 changed files with 19 additions and 11 deletions

View File

@ -1,8 +1,8 @@
assert m.atyp_valu().get_mtxt() == "Valu" assert m.atyp_valu().get_mtxt() == "Valu"
atyp_valu rtrn_valu() { atyp_valu obj{"Valu"}; return obj; } atyp_valu rtrn_valu() { atyp_valu obj{"Valu"}; return obj; }
indestructible_int(int v) : valu{v} {} explicit indestructible_int(int v) : valu{v} {}
explicit movable_int(int v) : valu{v} {}
int valu; int valu;
movable_int(int v) : valu{v} {}
(m.pass_valu, "Valu", "pass_valu:Valu(_MvCtor)*_CpCtor"), (m.pass_valu, "Valu", "pass_valu:Valu(_MvCtor)*_CpCtor"),
other.valu = 91; other.valu = 91;
REQUIRE(hld.as_raw_ptr_unowned<zombie>()->valu == 19); REQUIRE(hld.as_raw_ptr_unowned<zombie>()->valu == 19);

View File

@ -43,7 +43,7 @@ inline bool deregister_instance(instance *self, void *valptr, const type_info *t
// clang-format off // clang-format off
class modified_type_caster_generic_load_impl { class modified_type_caster_generic_load_impl {
public: public:
PYBIND11_NOINLINE modified_type_caster_generic_load_impl(const std::type_info &type_info) PYBIND11_NOINLINE explicit modified_type_caster_generic_load_impl(const std::type_info &type_info)
: typeinfo(get_type_info(type_info)), cpptype(&type_info) { } : typeinfo(get_type_info(type_info)), cpptype(&type_info) { }
explicit modified_type_caster_generic_load_impl(const type_info *typeinfo = nullptr) explicit modified_type_caster_generic_load_impl(const type_info *typeinfo = nullptr)
@ -598,13 +598,17 @@ struct smart_holder_type_caster : smart_holder_type_caster_load<T>,
// The const operators here prove that the existing type_caster mechanism already supports // The const operators here prove that the existing type_caster mechanism already supports
// const-correctness. However, fully implementing const-correctness inside this type_caster // const-correctness. However, fully implementing const-correctness inside this type_caster
// is still a major project. // is still a major project.
// NOLINTNEXTLINE(google-explicit-constructor)
operator T const &() const { operator T const &() const {
return const_cast<smart_holder_type_caster *>(this)->loaded_as_lvalue_ref(); return const_cast<smart_holder_type_caster *>(this)->loaded_as_lvalue_ref();
} }
// NOLINTNEXTLINE(google-explicit-constructor)
operator T const *() const { operator T const *() const {
return const_cast<smart_holder_type_caster *>(this)->loaded_as_raw_ptr_unowned(); return const_cast<smart_holder_type_caster *>(this)->loaded_as_raw_ptr_unowned();
} }
// NOLINTNEXTLINE(google-explicit-constructor)
operator T &() { return this->loaded_as_lvalue_ref(); } operator T &() { return this->loaded_as_lvalue_ref(); }
// NOLINTNEXTLINE(google-explicit-constructor)
operator T *() { return this->loaded_as_raw_ptr_unowned(); } operator T *() { return this->loaded_as_raw_ptr_unowned(); }
// Originally type_caster_generic::cast. // Originally type_caster_generic::cast.
@ -749,6 +753,7 @@ struct smart_holder_type_caster<std::shared_ptr<T>> : smart_holder_type_caster_l
template <typename> template <typename>
using cast_op_type = std::shared_ptr<T>; using cast_op_type = std::shared_ptr<T>;
// NOLINTNEXTLINE(google-explicit-constructor)
operator std::shared_ptr<T>() { return this->loaded_as_shared_ptr(); } operator std::shared_ptr<T>() { return this->loaded_as_shared_ptr(); }
}; };
@ -768,6 +773,7 @@ struct smart_holder_type_caster<std::shared_ptr<T const>> : smart_holder_type_ca
template <typename> template <typename>
using cast_op_type = std::shared_ptr<T const>; using cast_op_type = std::shared_ptr<T const>;
// NOLINTNEXTLINE(google-explicit-constructor)
operator std::shared_ptr<T const>() { return this->loaded_as_shared_ptr(); } // Mutbl2Const operator std::shared_ptr<T const>() { return this->loaded_as_shared_ptr(); } // Mutbl2Const
}; };
@ -844,6 +850,7 @@ struct smart_holder_type_caster<std::unique_ptr<T, D>> : smart_holder_type_caste
template <typename> template <typename>
using cast_op_type = std::unique_ptr<T, D>; using cast_op_type = std::unique_ptr<T, D>;
// NOLINTNEXTLINE(google-explicit-constructor)
operator std::unique_ptr<T, D>() { return this->template loaded_as_unique_ptr<D>(); } operator std::unique_ptr<T, D>() { return this->template loaded_as_unique_ptr<D>(); }
}; };
@ -863,6 +870,7 @@ struct smart_holder_type_caster<std::unique_ptr<T const, D>>
template <typename> template <typename>
using cast_op_type = std::unique_ptr<T const, D>; using cast_op_type = std::unique_ptr<T const, D>;
// NOLINTNEXTLINE(google-explicit-constructor)
operator std::unique_ptr<T const, D>() { return this->template loaded_as_unique_ptr<D>(); } operator std::unique_ptr<T const, D>() { return this->template loaded_as_unique_ptr<D>(); }
}; };

View File

@ -9,7 +9,7 @@ namespace helpers {
struct movable_int { struct movable_int {
int valu; int valu;
movable_int(int v) : valu{v} {} explicit movable_int(int v) : valu{v} {}
movable_int(movable_int &&other) noexcept { movable_int(movable_int &&other) noexcept {
valu = other.valu; valu = other.valu;
other.valu = 91; other.valu = 91;
@ -26,7 +26,7 @@ struct functor_other_delete : functor_builtin_delete<T> {};
struct indestructible_int { struct indestructible_int {
int valu; int valu;
indestructible_int(int v) : valu{v} {} explicit indestructible_int(int v) : valu{v} {}
private: private:
~indestructible_int() = default; ~indestructible_int() = default;

View File

@ -12,7 +12,7 @@ namespace class_sh_basic {
struct atyp { // Short for "any type". struct atyp { // Short for "any type".
std::string mtxt; std::string mtxt;
atyp() : mtxt("DefaultConstructor") {} atyp() : mtxt("DefaultConstructor") {}
atyp(const std::string &mtxt_) : mtxt(mtxt_) {} explicit atyp(const std::string &mtxt_) : mtxt(mtxt_) {}
atyp(const atyp &other) { mtxt = other.mtxt + "_CpCtor"; } atyp(const atyp &other) { mtxt = other.mtxt + "_CpCtor"; }
atyp(atyp &&other) noexcept { mtxt = other.mtxt + "_MvCtor"; } atyp(atyp &&other) noexcept { mtxt = other.mtxt + "_MvCtor"; }
}; };

View File

@ -10,7 +10,7 @@ namespace class_sh_disowning {
template <int SerNo> // Using int as a trick to easily generate a series of types. template <int SerNo> // Using int as a trick to easily generate a series of types.
struct Atype { struct Atype {
int val = 0; int val = 0;
Atype(int val_) : val{val_} {} explicit Atype(int val_) : val{val_} {}
int get() const { return val * 10 + SerNo; } int get() const { return val * 10 + SerNo; }
}; };

View File

@ -31,13 +31,13 @@ void disown_b(std::unique_ptr<B>) {}
// test_multiple_inheritance_python // test_multiple_inheritance_python
struct Base1 { struct Base1 {
Base1(int i) : i(i) {} explicit Base1(int i) : i(i) {}
int foo() const { return i; } int foo() const { return i; }
int i; int i;
}; };
struct Base2 { struct Base2 {
Base2(int j) : j(j) {} explicit Base2(int j) : j(j) {}
int bar() const { return j; } int bar() const { return j; }
int j; int j;
}; };

View File

@ -14,7 +14,7 @@ const std::string fooNames[] = {"ShPtr_", "SmHld_"};
template <int SerNo> template <int SerNo>
struct Foo { struct Foo {
std::string history; std::string history;
Foo(const std::string &history_) : history(history_) {} explicit Foo(const std::string &history_) : history(history_) {}
Foo(const Foo &other) : history(other.history + "_CpCtor") {} Foo(const Foo &other) : history(other.history + "_CpCtor") {}
Foo(Foo &&other) noexcept : history(other.history + "_MvCtor") {} Foo(Foo &&other) noexcept : history(other.history + "_MvCtor") {}
Foo &operator=(const Foo &other) { Foo &operator=(const Foo &other) {

View File

@ -11,7 +11,7 @@ template <int SerNo> // Using int as a trick to easily generate a series of type
struct Abase { struct Abase {
int val = 0; int val = 0;
virtual ~Abase() = default; virtual ~Abase() = default;
Abase(int val_) : val{val_} {} explicit Abase(int val_) : val{val_} {}
int Get() const { return val * 10 + 3; } int Get() const { return val * 10 + 3; }
virtual int Add(int other_val) const = 0; virtual int Add(int other_val) const = 0;