C++ std::映射声明-模板错误
对于下面的代码行,我得到了下面的编译错误,表示模板参数的数量错误。你能告诉我这个声明有什么问题吗?我觉得还可以。ServicePartitionKey的内容在底部给出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
//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;
丢失键
单词,语法错误。丢失键
单词,语法错误。