‘std :: pair’: использование шаблона класса требует списка аргументов шаблона

Я пытаюсь создать unordered_map, ключ которого будет членом класса Gdiplus :: Color и float, но я не могу понять, почему я не могу этого сделать. Это моя декларация

std::unordered_map<std::pair(Gdiplus::Color, float), std::shared_ptr<Gdiplus::Pen>> mymap;

-1

Решение

Вы использовали неправильные скобки для своего std::pair тип. Аргументы шаблона должны быть указаны в угловых скобках:

std::pair<Gdiplus::Color, float>
4

Другие решения

Ваш синтаксис для создания экземпляров std::pair неверный шаблон класса: он должен быть

 std::pair<Gdiplus::Color, float>
//       ^                     ^

С угловыми скобками вместо скобок. Следовательно, вся декларация становится:

std::unordered_map<
std::pair<Gdiplus::Color, float>,
//           ^                     ^
std::shared_ptr<Gdiplus::Pen>
> mymap;
1

По вопросам рекламы [email protected]