我编写了一个比较器来检查对象的成员是否等于输入。这就像一个魅力,除了一个成员是 char[];
我已经搜索了互联网,C++ ISO 标准并尝试了很多,但我无法弄清楚。
这是简化的代码:
/*
* main.cpp
*
* Created on: Nov 17, 2012
* Author: martijn
*/
#include <string.h>
class Data {
public:
Data() {
strcpy(Name, "MyCharArray");
};
virtual ~Data();
char Name[12];
};
template <class ClassT, char (ClassT::*Name)[]> // What should be here?!
class Comparator {
public:
Comparator() {};
~Comparator() {};
};
int main() {
Comparator<Data, &Data::Name> comparatorArray;
return 0;
}
代码中指出了问题区域(至少我是这样做的)。当前代码不正确。编译器说:
错误:无法将模板参数 '&Data::Name' 转换为 'char (Data::*)[]'</p>