2012-10-02 102 views
0

任何人都可以找到第一次重载和所需函数之间的区别吗?如果我注释掉Python规范,编译很好,但我在其他地方需要它。共郁闷...重载模板函数模糊问题

template<typename TN> 
void fromVectorTo(const std::vector<TN> & input, xlw::impl::XlfOper<xlw::LPXLFOPER> * output){....} 
template<typename TN> 
void fromVectorTo(const std::vector<TN> & input, PyObject ** output){...} 

error C2665: 'pal::fromVectorTo' : none of the 2 overloads could convert all the argument types 
8>  myPython.h(73): could be 'void pal::fromVectorTo<double>(const std::vector<_Ty> &,PyObject **)' 
8>  with 
8>  [ 
8>   _Ty=double 
8>  ] 
8>  myXLW.h(102): or  'void pal::fromVectorTo<double>(const std::vector<_Ty> &,xlw::impl::XlfOper<LPOPER_TYPE> *)' 
8>  with 
8>  [ 
8>   _Ty=double, 
8>   LPOPER_TYPE=xlw::LPXLFOPER 
8>  ] 
8>  while trying to match the argument list '(const std::vector<_Ty>, xlw::impl::XlfOper<LPOPER_TYPE> *)' 
8>  with 
8>  [ 
8>   _Ty=double 
8>  ] 
8>  and 
8>  [ 
8>   LPOPER_TYPE=xlw::LPXLFOPER 
8>  ] 

回答

0

看起来这是一个编译器错误 - 错误消息肯定是错误的。当我使用模板类的局部特化+做其他修改时,问题似乎消失了。