首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于数组参数的模板函数特化解决方法

2012-08-15 
关于数组参数的模板函数特化templatetypename TCSerializer& operator (T& data)templatetypename

关于数组参数的模板函数特化
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 ?

热点排行