File tree 1 file changed +5
-6
lines changed
1 file changed +5
-6
lines changed Original file line number Diff line number Diff line change @@ -1367,13 +1367,12 @@ template <typename... Ts> class type_caster<std::tuple<Ts...>>
1367
1367
template <typename T, typename SFINAE = void >
1368
1368
struct holder_helper {
1369
1369
static auto get (const T &p) -> decltype(p.get()) { return p.get (); }
1370
- };
1371
1370
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
+ }
1377
1376
};
1378
1377
1379
1378
// / Type caster for holder types like std::shared_ptr, etc.
You can’t perform that action at this time.
0 commit comments