0
我已创建使用模板的C++模板错误 - 不能是模板定义
一个简单的LinkedList类基本上我可以创建列表的一个实例是这样
LinkedList<int> myList = LinkedList<int>();
现在我想补充一个方法给我的LinkedList并提供一个回调函数,以便函数可以回调我的代码来执行一个动作。
我试图创建以下
template< typename T>
typedef bool(*LinkedList_SortCallBack2)(T);
但是我收到一个编译器错误
错误C2998: '布尔(_ CDECL * _cdecl LinkedList_SortCallBack2)(T)':不能是模板定义
作为解决方法我已经使用void *但有没有办法做我想要的?所以我的回电是这样
bool cb(int NewValue, int ExistingValue)
{
}
代替
typedef bool (*LinkedList_SortCallBack)(void *value1, void* value2);
bool cb(void* NewValue, void* ExistingValue)
{
int a, b;
a = *(int *)NewValue;
b = *(int*)ExistingValue;
if (a < b)
return true;
else
return false;
}
你靠哪一个C++标准的版本里面?在C++ 11之前,没有typedef模板。即使C++ 11使用'using'来添加别名声明来启用它。 – ftynse