std::pair - 错误:模板参数数量错误

yeum 发布于 2019-03-09 c++ 最后更新 2019-03-09 14:39 2 浏览

我有一个std :: pair声明,显示在下面的代码片段和g ++问题下方的第152行编译错误中,声明“错误:模板参数的错误数量(1,应该是2)”。我是这个std :: pair的新手,我想知道我做错了什么。所以提到的行号已被标记在下面的代码片段中。谢谢。

  std::vector< 
              std::pair<EndPointAddr* requesterServiceAddr, 
                        EndPointAddr*  requestedServiceAddr>* //LINE 152 is HERE
             > mServiceSubscriptionsList;
In file included from ServiceRegistrar.hpp:8:0,
                   from ServiceRegistrar.cpp:7:
  ../control_api/ServiceRegistrarAPI.hpp:152:95: error: wrong number of template   arguments (1, should be 2)
  ........
  .......
  ../control_api/ServiceRegistrarAPI.hpp:153:14: error: template argument 1 is invalid
  ../control_api/ServiceRegistrarAPI.hpp:153:14: error: template argument 2 is invalid
  In file included from ../control_api/ServiceRegistrarAPI.cpp:5:0:
已邀请:

veos

赞同来自:

您需要将类型作为模板参数,而不是变量:

std::vector< std::pair<EndPointAddr*, EndPointAddr*>* >

ysequi

赞同来自:

std::pair只需要声明中的类型。

std::vector< 
          std::pair<EndPointAddr*, 
                    EndPointAddr* >* //LINE 152 is HERE
         > mServiceSubscriptionsList;