#ifndef PYTHONIC_BUILTIN_DICT_HPP #define PYTHONIC_BUILTIN_DICT_HPP #include "pythonic/include/builtins/dict.hpp" #include "pythonic/types/dict.hpp" #include "pythonic/utils/functor.hpp" #include #include PYTHONIC_NS_BEGIN namespace builtins { namespace anonymous { types::empty_dict dict() { return types::empty_dict(); } template types::dict dict(types::dict const &other) { return other.copy(); } template auto dict(Iterable &&iterable) -> types::dict< typename std::decay(*iterable.begin()))>::type, typename std::decay(*iterable.begin()))>::type> { types::dict< typename std::decay(*iterable.begin()))>::type, typename std::decay(*iterable.begin()))>::type> out = types::empty_dict(); for (auto const &i : iterable) out[std::get<0>(i)] = std::get<1>(i); return out; } } } PYTHONIC_NS_END #endif