Элемент шаблона реализации класса шаблона в заголовочном файле - PullRequest
2 голосов
/ 28 марта 2019

У меня есть класс, который выглядит так

template<class T>
class Matrix {
    ...
    template<class T2> auto dot(Matrix<T2> const& other);
}

Вот моя реализация под объявлением в заголовочном файле:

template<class T, class T2>
auto Matrix<T>::dot(Matrix<T2> const& other) {
    [impl]
}

Ошибка, которую я получаю, выглядит следующим образом:

(C2244) 'Matrix<T>::dot' : unable to match function definition to an existing declaration

Куда я иду не так?

1 Ответ

3 голосов
/ 28 марта 2019

Синтаксис неверен. У вас есть шаблон функции с параметром шаблона T2 в шаблоне класса с параметром шаблона T. Это должно быть определено так:

template<class T>
template<class T2> 
auto Matrix<T>::dot(Matrix<T2> const& other) {

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...