Skip to content

Commit bf3104e

Browse files
Update
1 parent 95a33cd commit bf3104e

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

include/pybind11/cast.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,13 +1367,12 @@ template <typename... Ts> class type_caster<std::tuple<Ts...>>
13671367
template <typename T, typename SFINAE = void>
13681368
struct holder_helper {
13691369
static auto get(const T &p) -> decltype(p.get()) { return p.get(); }
1370-
};
13711370

1372-
// Specialization for move-only holders to address #1138.
1373-
template <typename T>
1374-
struct holder_helper<T, enable_if_t<!is_copy_constructible<T>::value>> {
1375-
static auto get(const T &p) -> decltype(p.get()) { return p.get(); }
1376-
static auto get(T &&p) -> decltype(p.get()) { return p.release(); }
1371+
// Specialize move-only holder semantics to address #1138.
1372+
template <typename U = T>
1373+
static auto get(T &&p, enable_if_t<!is_copy_constructible<U>::value>* = nullptr) -> decltype(p.get()) {
1374+
return p.release();
1375+
}
13771376
};
13781377

13791378
/// Type caster for holder types like std::shared_ptr, etc.

0 commit comments

Comments
 (0)