次のコード行では、テンプレート引数の数が間違っているという以下のコンパイルエラーが発生します。この宣言の何が問題なのか教えていただけますか?それは私には大丈夫に見えます。ServicePartitionKeyの内容は下部にあります。
//Line 107 where template arguments issue happens is this declaration line
std::map<ServicePartitionKey key, std::vector<EndPointAddr*>* > mServiceMap;
コンパイルメッセージ:
In file included from ServiceRegistrar.hpp:8:0,
from ServiceRegistrar.cpp:7:
../control_api/ServiceRegistrarAPI.hpp:107:66: error: wrong number of template arguments (1, should be 4)
In file included from /usr/include/c++/4.7/map:61:0,
from ../control_api/ServiceRegistrarAPI.hpp:9,
from ServiceRegistrar.hpp:8,
from ServiceRegistrar.cpp:7:
クラスServicePartitionKey
#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;
};