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>        ]
4

1 に答える 1

0

これはコンパイラのバグのようです。エラー メッセージが間違っていたに違いありません。テンプレートクラスの部分的な特殊化を使用し、他の変更を行った場合、問題は解決したようです。

于 2012-10-23T13:11:49.577 に答える