C++ std::映射声明-模板错误

C++ std::映射声明-模板错误,c++,c++11,C++,C++11,对于下面的代码行,我得到了下面的编译错误,表示模板参数的数量错误。你能告诉我这个声明有什么问题吗?我觉得还可以。ServicePartitionKey的内容在底部给出 //Line 107 where template arguments issue happens is this declaration line std::map<ServicePartitionKey key, std::vector<EndPointAddr*>* > mServiceM

对于下面的代码行,我得到了下面的编译错误,表示模板参数的数量错误。你能告诉我这个声明有什么问题吗?我觉得还可以。ServicePartitionKey的内容在底部给出

   //Line 107 where template arguments issue happens is this declaration line
   std::map<ServicePartitionKey key, std::vector<EndPointAddr*>* > mServiceMap;
类服务分区键

#include <cstdint>

class ServicePartitionKey
{
 public:  
    ServicePartitionKey() {};
    ServicePartitionKey(uint32_t instanceNo, uint64_t version);
    ~ServicePartitionKey() {};

   bool operator < (const ServicePartitionKey &rhs) const;

   void setInstanceNo(uint32_t instanceNo) { mInstanceNo = instanceNo; }  
   uint32_t getInstanceNo() const { return mInstanceNo; }

   void setVersion(uint64_t version) { mVersion = version; }  
   uint64_t getVersion() const { return mVersion; } 

 private:
   uint32_t mInstanceNo;
   uint64_t mVersion;
};
#包括
类ServicePartitionKey
{
公众:
ServicePartitionKey(){};
ServicePartitionKey(uint32\u t instanceNo,uint64\u t版本);
~ServicePartitionKey(){};
bool操作员<(常数服务分区键和rhs)常数;
void setInstanceNo(uint32_t instanceNo){mInstanceNo=instanceNo;}
uint32_t getInstanceNo()常量{return mInstanceNo;}
void setVersion(uint64_t version){mVersion=version;}
uint64_t getVersion()常量{return mVersion;}
私人:
uint32_t mInstanceNo;
uint64版本;
};

模板应该只是类型。对于第一个,您已经给出了类似于声明的语法:

std::map<ServicePartitionKey key, std::vector<EndPointAddr*>* > mServiceMap;
//                           ^^^
std::map mServiceMap;
//                           ^^^
应该是:

std::map<ServicePartitionKey, std::vector<EndPointAddr*>* > mServiceMap;
std::map mServiceMap;

模板应该只是类型。对于第一个,您已经给出了类似于声明的语法:

std::map<ServicePartitionKey key, std::vector<EndPointAddr*>* > mServiceMap;
//                           ^^^
std::map mServiceMap;
//                           ^^^
应该是:

std::map<ServicePartitionKey, std::vector<EndPointAddr*>* > mServiceMap;
std::map mServiceMap;

丢失
单词,语法错误。丢失
单词,语法错误。