Jak stworzyć mapę gdy value to POD?

0

Witam
Co bym nie zrobił to nie jestem w stanie zainicjować mapy poniżej gdy struktura Params jest POD-em. Dopiero jak dodam konstruktor do struktury 2 parametrowy i wywołanie konstruktora przy inicjalizacji mapy to kod sie kompiluje. To nie da sie trzymac PODa w mapie?

    struct Params
	{
        std::string x;
        std::string y;
	};
	
   struct HashClass
    {
        size_t operator()(const std::string& key) const
        {
	        return std::hash<std::string>()(key);
        }
    };

    std::unordered_map<std::string, Params, HashClass> mapa{std::make_pair("iglo", {"x","y"})};
1

Podane make_pair nie ma jak wydedukować typu.

std::unordered_map<std::string, Params, HashClass> mapa{{"iglo", {"x","y"}}};

To działa
https://wandbox.org/permlink/r1V9JwDfRHxsgg2x

2

Albo dodać typ do drugiego parametru make_pair.

std::unordered_map<std::string, Params, HashClass> mapa{ std::make_pair("iglo",Params{ "x","y" }) };

1 użytkowników online, w tym zalogowanych: 0, gości: 1