У меня есть структуры в C++, который является чем-то вроде этого:Проблемы с шаблоном в структурах структуры в C++
struct mystruct {
template <typename T>
T myproc() {
std::cout << "RETURNING T";
return T();
}
};
Сейчас эта структура уже существует (это просто пример реплика точной структуры), которые мне нужно использовать. То, что я пытаюсь сделать, это вызвать метод myproc()
, как показано ниже:
int _tmain(int argc, _TCHAR* argv[])
{
mystruct dummystruct;
int y = dummystruct.myproc();
return 0;
}
Но это дает мне эту ошибку компиляции:
error C2783: 'T mystruct::myproc(void)' : could not deduce template argument for 'T'
see declaration of 'mystruct::myproc'
который я знаю, потому что компилятор не имеет возможности узнать, что T
.
Так что мой вопрос в том, является ли объявление функции в правильной структуре? Я так не думаю, но этот код уже существует в одном из наших старых кодов, поэтому я подумал, что должен получить мнение других.
Поэтому я знаю, что это неправильно, но если кто-то считает его правильным, пожалуйста, объясните мне, как его использовать.
Что вы пытаетесь вернуть из 'myproc'? – 0x499602D2
Возможно, вы имели в виду 'return T();'? –