Lines Matching defs:Map

513 // Map assignment when copy-assignable: just copy the value
514 template <typename Map, typename Class_>
515 void map_assignment(enable_if_t<std::is_copy_assignable<typename Map::mapped_type>::value, Class_> &cl) {
516 using KeyType = typename Map::key_type;
517 using MappedType = typename Map::mapped_type;
520 [](Map &m, const KeyType &k, const MappedType &v) {
529 template<typename Map, typename Class_>
531 !std::is_copy_assignable<typename Map::mapped_type>::value &&
532 is_copy_constructible<typename Map::mapped_type>::value,
534 using KeyType = typename Map::key_type;
535 using MappedType = typename Map::mapped_type;
538 [](Map &m, const KeyType &k, const MappedType &v) {
551 template <typename Map, typename Class_> auto map_if_insertion_operator(Class_ &cl, std::string const &name)
552 -> decltype(std::declval<std::ostream&>() << std::declval<typename Map::key_type>() << std::declval<typename Map::mapped_type>(), void()) {
555 [name](Map &m) {
575 template <typename Map, typename holder_type = std::unique_ptr<Map>, typename... Args>
576 class_<Map, holder_type> bind_map(handle scope, const std::string &name, Args&&... args) {
577 using KeyType = typename Map::key_type;
578 using MappedType = typename Map::mapped_type;
579 using Class_ = class_<Map, holder_type>;
596 detail::map_if_insertion_operator<Map, Class_>(cl, name);
599 [](const Map &m) -> bool { return !m.empty(); },
604 [](Map &m) { return make_key_iterator(m.begin(), m.end()); },
609 [](Map &m) { return make_iterator(m.begin(), m.end()); },
614 [](Map &m, const KeyType &k) -> MappedType & {
624 [](Map &m, const KeyType &k) -> bool {
633 detail::map_assignment<Map, Class_>(cl);
636 [](Map &m, const KeyType &k) {
644 cl.def("__len__", &Map::size);