'std::pair':使用类模板需要模板参数列表

'std::pair' : use of class template requires template argument list

本文关键字:参数 列表 std pair      更新时间:2023-10-16

我试图创建一个unordered_map,其关键将是Gdiplus::Color类和float的成员,但我不知道为什么我不能这样做。这是我的声明

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

您为std::pair类型使用了错误类型的括号。模板参数应该在尖括号中给出:

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

您实例化std::pair类模板的语法不正确:它应该是

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

用尖括号代替圆括号。因此,整个声明变成:

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