V
vladimir7485
Привет всем. Столкнулся со следующей проблемой. Пишу в Visual Studio 2012. Создал класс SomeException. VS автоматически добавила SomeException.h и SomeException.cpp.
SomeException.h:
SomeException.cpp:
Собственно, проблема: при наведении на ss (VS подчеркивает красным) появляется "Error: incomplete type is not allowed". И дальше по коду, все что связано с ss тоже подчеркивает.Что не так? Кстати, до этого этот класс был описан в одном SomeException.h файле, все было норм, реши сделать как положено вроде как, и тут на тебе...
Кстати, и доп. вопрос, не объясните, что значит это определение:
#define THROW_SOME_EXCEPTION(msg) throw SomeException(_T(msg),_T(__FILE__),__LINE__);
Спасибо!
SomeException.h:
Код:
#define THROW_SOME_EXCEPTION(msg) throw SomeException(_T(msg),_T(__FILE__),__LINE__);
typedef std::basic_string<TCHAR> _tstring;
typedef std::basic_stringstream<TCHAR> _tstringstream;
class SomeExсeption
{
_tstring error_str;
public:
SomeExсeption(const TCHAR *msg, TCHAR *inpfile, int inpline);
~SomeExсeption(void);
const TCHAR* what() const;
};
Код:
SomeExсeption::SomeExсeption(const TCHAR *msg, TCHAR *inpfile, int inpline)
{
_tstringstream ss;
ss << "Exception: " << msg;
ss << ". File: " << inpfile << " Line: " << inpline;
error_str = ss.str();
}
SomeExсeption::~SomeExсeption(void)
{
}
const TCHAR* SomeExсeption::what() const
{
return error_str.c_str();
}
Кстати, и доп. вопрос, не объясните, что значит это определение:
#define THROW_SOME_EXCEPTION(msg) throw SomeException(_T(msg),_T(__FILE__),__LINE__);
Спасибо!