@@ -60,18 +60,19 @@ struct is_comparable<T, enable_if_t<container_traits<T>::is_pair>> {
60
60
};
61
61
62
62
/* Fallback functions */
63
- template <typename , typename , typename ... Args> void vector_if_copy_constructible (const Args&...) { }
64
- template <typename , typename , typename ... Args> void vector_if_equal_operator (const Args&...) { }
65
- template <typename , typename , typename ... Args> void vector_if_insertion_operator (const Args&...) { }
66
-
67
- template <typename Vector, typename Class_, enable_if_t <std::is_copy_constructible<typename Vector::value_type>::value, int > = 0 >
68
- void vector_if_copy_constructible (Class_ &cl) {
69
- cl.def (pybind11::init<const Vector &>(),
70
- " Copy constructor" );
63
+ template <typename , typename , typename ... Args> void vector_if_copy_constructible (const Args &...) { }
64
+ template <typename , typename , typename ... Args> void vector_if_equal_operator (const Args &...) { }
65
+ template <typename , typename , typename ... Args> void vector_if_insertion_operator (const Args &...) { }
66
+
67
+ template <typename Vector, typename Class_>
68
+ void vector_if_copy_constructible (enable_if_t <
69
+ std::is_copy_constructible<typename Vector::value_type>::value, Class_> &cl) {
70
+
71
+ cl.def (pybind11::init<const Vector &>(), " Copy constructor" );
71
72
}
72
73
73
- template <typename Vector, typename Class_, enable_if_t <is_comparable<Vector>::value, int > = 0 >
74
- void vector_if_equal_operator (Class_ &cl) {
74
+ template <typename Vector, typename Class_>
75
+ void vector_if_equal_operator (enable_if_t <is_comparable<Vector>::value, Class_> &cl) {
75
76
using T = typename Vector::value_type;
76
77
77
78
cl.def (self == self);
@@ -361,9 +362,10 @@ pybind11::class_<Vector, holder_type> bind_vector(pybind11::module &m, std::stri
361
362
NAMESPACE_BEGIN (detail)
362
363
363
364
/* Fallback functions */
364
- template <typename, typename, typename... Args> void map_if_insertion_operator(const Args&...) { }
365
+ template <typename, typename, typename... Args> void map_if_insertion_operator(const Args &...) { }
365
366
366
- template <typename Map, typename Class_, typename ... Args> void map_if_copy_assignable (Class_ &cl, const Args&...) {
367
+ template <typename Map, typename Class_>
368
+ void map_assignment (enable_if_t <std::is_copy_assignable<typename Map::mapped_type>::value, Class_> &cl) {
367
369
using KeyType = typename Map::key_type;
368
370
using MappedType = typename Map::mapped_type;
369
371
@@ -376,8 +378,10 @@ template <typename Map, typename Class_, typename... Args> void map_if_copy_assi
376
378
);
377
379
}
378
380
379
- template <typename Map, typename Class_, enable_if_t <!std::is_copy_assignable<typename Map::mapped_type>::value, int > = 0 >
380
- void map_if_copy_assignable (Class_ &cl) {
381
+ template <typename Map, typename Class_>
382
+ void map_if_copy_assignable (enable_if_t <
383
+ !std::is_copy_assignable<typename Map::mapped_type>::value,
384
+ Class_> &cl) {
381
385
using KeyType = typename Map::key_type;
382
386
using MappedType = typename Map::mapped_type;
383
387
0 commit comments