diff --git a/include/pybind11/internal/kernel.h b/include/pybind11/internal/kernel.h index 55d33f45..c23471b6 100644 --- a/include/pybind11/internal/kernel.h +++ b/include/pybind11/internal/kernel.h @@ -10,7 +10,7 @@ struct capsule { void* ptr; void (*destructor)(void*); - template + template , capsule>)>> capsule(T&& value) : ptr(new auto(std::forward(value))), destructor([](void* ptr) { delete static_cast*>(ptr); @@ -26,7 +26,7 @@ struct capsule { } ~capsule() { - if(ptr != nullptr && destructor != nullptr) destructor(ptr); + if(ptr && destructor) destructor(ptr); } }; } // namespace pybind11::impl diff --git a/include/pybind11/internal/types.h b/include/pybind11/internal/types.h index d2997b34..78628853 100644 --- a/include/pybind11/internal/types.h +++ b/include/pybind11/internal/types.h @@ -365,9 +365,6 @@ class capsule : public object { PYBIND11_TYPE_IMPLEMENT(object, impl::capsule, handle(vm->builtins->attr("capsule"))._as()); public: - template - capsule(T&& value) : object(create(std::forward(value))) {} - capsule(void* ptr, void (*destructor)(void*) = nullptr) : object(create(ptr, destructor)) {} void* data() const { return self().ptr; }