我有以下类别:模板成员函数不接受任何类型的参数?
template<class TYPE, class IDENTIFIER>
class Parameter
{
TYPE typeValue;
IDENTIFIER ID;
};
template<class IDENTIFIER>
class ParameterSystem
{
template<typename TYPE>
void AddParameter(Parameter<TYPE, IDENTIFIER> parameter, TYPE value);
};
但是,每当我尝试使用AddParameter,它说没有函数重载匹配的参数list.I试过各种可能的combinations.For实例:
typedef unsigned int ResourceIndex; //I use unsigned ints to reference resources in my other(resource system)
typedef unsigned int DefaultParameterID;
typedef Parameter<ResourceIndex, DefaultParameterID> ResourceParameter;
所以后来我用这样的:
ParameterSystem<DefaultParameterID> parameterSystem;
ResourceParameter param;
//do some stuff with param;
parameterSystem.AddParameter<ResourceIndex>(param, param.typeValue); //here it gives the error
这不起作用,智能感知告诉我,它不匹配参数列表,甚至寿它的参数列表应该是(Parameter,unsigned int),这就是它的原因。我可以做什么错误?(对于那些有兴趣的人,AddParameter做的是取得typeValue的值并将其设置为一个void指针一个Map在参数系统内部,然后它将该值的映射关键字与参数的ID同步,并且该参数也具有对它的父参数系统的句柄,所以从它的ID和一个类型检查+类型转换可以始终得到参数在回应它的ID,但是这不应该是相关的,我认为这个问题的系统值...)
这是你的真实密码?该函数被称为'AddParameter',你正在调用'Add'。另外,Intellisense不是编译器。 *编译器*对此有何评论? – 2013-03-15 12:30:12
噢,我编辑它,对此感到遗憾。 – 2013-03-15 12:33:25
void AddParameter中的IDENTIFIER的位置(参数 ... ...? –
iammilind
2013-03-15 12:35:12