1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Error: Incomplete Type Is Not Allowed

Тема в разделе "MS Visual C++", создана пользователем vladimir7485, 1 июн 2013.

  1. vladimir7485

    vladimir7485 Гость

    Привет всем. Столкнулся со следующей проблемой. Пишу в Visual Studio 2012. Создал класс SomeException. VS автоматически добавила SomeException.h и SomeException.cpp.
    SomeException.h:
    Код (Text):
    #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;
    };
    SomeException.cpp:
    Код (Text):
    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();
    }
    Собственно, проблема: при наведении на ss (VS подчеркивает красным) появляется "Error: incomplete type is not allowed". И дальше по коду, все что связано с ss тоже подчеркивает.Что не так? Кстати, до этого этот класс был описан в одном SomeException.h файле, все было норм, реши сделать как положено вроде как, и тут на тебе...
    Кстати, и доп. вопрос, не объясните, что значит это определение:
    #define THROW_SOME_EXCEPTION(msg) throw SomeException(_T(msg),_T(__FILE__),__LINE__);
    Спасибо!
     
  2. rrrFer

    rrrFer Well-Known Member
    C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    #define THROW_SOME_EXCEPTION(msg) throw SomeException(_T(msg),_T(__FILE__),__LINE__);

    значит, что на этапе препроцессорной обработки все встретившиеся сочетания
    THROW_SOME_EXCEPTION(msg)
    будут заменены на throw SomeException(_T(msg),_T(__FILE__),__LINE__);
     
Загрузка...
Похожие Темы - Error Incomplete Type
  1. Kalista
    Ответов:
    1
    Просмотров:
    119
  2. anna
    Ответов:
    11
    Просмотров:
    855
  3. glass44
    Ответов:
    0
    Просмотров:
    550
  4. Barakuda
    Ответов:
    0
    Просмотров:
    566
  5. cobra77777
    Ответов:
    5
    Просмотров:
    1.056

Поделиться этой страницей