ошибка: ISO C ++ запрещает объявление ‘ref’ без типа

Я получил эту ошибку. Код ниже:
Я интегрировал библиотеки vmime в свой код. Теперь мне нужно реализовать обработчик тайм-аута с конкретной записью тайм-аута здесь 30 секунд, в соответствии с требованиями, реализующими эту часть кода.

class myTimeoutHandler : public vmime :: net :: timeoutHandler {
public:
bool isTimeOut()
{
return(getTime()>=m_last + 30);
}
void resetTimeOut()
{
m_last = getTime();
}
bool handleTimeOut()
{
logMsg(DEBUG,2,"Connection Timed Out!");
return true;
}
private:

const unsigned int getTime() const

{
return vmime::platform::getHandler()->getUnixTime();
}
unsigned int m_last;
};

class myTimeoutHandlerFactory : public vmime::net::timeoutHandlerFactory
{
public:
ref <timeoutHandler> create ()
{
return vmime::create <myTimeoutHandler>();
}
};

Я попытался дать vmime :: ref вместо ref, это выдает новую ошибку,

Svr.h:158: error: 'timeoutHandler' was not declared in this scope
Svr.h:158: error: template argument 1 is invalid

Может кто-нибудь, пожалуйста, помогите. Спасибо

РЕДАКТИРОВАТЬ:

Я называю эту часть кода в файле my.C следующим образом

tr->setTimeoutHandlerFactory(vmime::create <myTimeoutHandlerFactory>());

0

Решение

Похоже, у вас нет типа с именем timeoutHandler но у вас есть один называется myTimeoutHandler, Возможно, вы имели в виду:

vmime::ref<myTimeoutHandler>

Или, может быть, вы хотите timeoutHandler определены в vmime::net Пространство имен:

vmime::ref<vmime::net::timeoutHandler>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]