关于数组参数的模板函数特化
template<typename T>
CSerializer& operator >> (T& data);
template<typename T>
CSerializer& operator >> (T*& data);
有以上两个定义,目的是为了,当向外读出的变量是非指针类型的时候,将数据拷贝给data类型,如果是指针类型,则将指针的值直接指向一个地方(避免拷贝)
char charArrayOut[128];
serializer >> charArrayOut;
在解析这句语句时,我期望的是编译器将charArrayout作为一个char*处理而进入第二个定义的特化函数
template<>
inline CSerializer& CSerializer::operator >> (char*& data)
里面
但是,编译器把参数作为一个char[128]的类型进行了处理,所以走了第一个定义的函数中去。
请问有什么办法能达到我的目的吗?或者我针对char的数组类型应该怎么样写一个特化函数?
[解决办法]
&charArrayOut ?