mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-30 00:47:12 +00:00
Resolve helpful clang-tidy errors.
``` /usr/bin/cmake -E __run_co_compile --tidy="/usr/bin/clang-tidy;--use-color;--warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=/__w/pybind11/pybind11/tests/test_class.cpp -- /usr/bin/c++ -DPYBIND11_ENABLE_TYPE_CASTER_ODR_GUARD_IF_AVAILABLE -DPYBIND11_TEST_EIGEN -Dpybind11_tests_EXPORTS -I/__w/pybind11/pybind11/include -isystem /usr/include/python3.9 -isystem /__w/pybind11/pybind11/build/_deps/eigen-src -Os -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wconversion -Wcast-qual -Wdeprecated -Wundef -Wnon-virtual-dtor -flto=thin -std=c++17 -o CMakeFiles/pybind11_tests.dir/test_class.cpp.o -c /__w/pybind11/pybind11/tests/test_class.cpp /__w/pybind11/pybind11/include/pybind11/detail/smart_holder_poc.h:114:5: error: single-argument constructors must be marked explicit to avoid unintentional implicit conversions [google-explicit-constructor,-warnings-as-errors] custom_deleter(D &&deleter) : deleter{std::move(deleter)} {} ^ explicit /__w/pybind11/pybind11/include/pybind11/detail/smart_holder_poc.h:120:76: error: forwarding reference passed to std::move(), which may unexpectedly cause lvalues to be moved; use std::forward() instead [bugprone-move-forwarding-reference,-warnings-as-errors] return guarded_delete(std::function<void(void *)>(custom_deleter<T, D>(std::move(uqp_del))), ^~~~~~~~~ std::forward<D> ```
This commit is contained in:
parent
17098eb760
commit
6083f8adbb
@ -111,14 +111,14 @@ guarded_delete make_guarded_builtin_delete(bool armed_flag) {
|
|||||||
template <typename T, typename D>
|
template <typename T, typename D>
|
||||||
struct custom_deleter {
|
struct custom_deleter {
|
||||||
D deleter;
|
D deleter;
|
||||||
custom_deleter(D &&deleter) : deleter{std::move(deleter)} {}
|
explicit custom_deleter(D &&deleter) : deleter{std::move(deleter)} {}
|
||||||
void operator()(void *raw_ptr) { deleter(static_cast<T *>(raw_ptr)); }
|
void operator()(void *raw_ptr) { deleter(static_cast<T *>(raw_ptr)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T, typename D>
|
template <typename T, typename D>
|
||||||
guarded_delete make_guarded_custom_deleter(D &&uqp_del, bool armed_flag) {
|
guarded_delete make_guarded_custom_deleter(D &&uqp_del, bool armed_flag) {
|
||||||
return guarded_delete(std::function<void(void *)>(custom_deleter<T, D>(std::move(uqp_del))),
|
return guarded_delete(
|
||||||
armed_flag);
|
std::function<void(void *)>(custom_deleter<T, D>(std::forward<D>(uqp_del))), armed_flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
Loading…
Reference in New Issue
Block a user