Я натолкнулся на следующий код на VS2008
if (!CreateProcess( NULL,
const_cast<LPWSTR>(ss.str().c_str()),
NULL,
NULL,
FALSE,
CREATE_NO_WINDOW|NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi))
{
throw std::exception("Unable to format Device");
}
Теперь я переношу код в mingw gcc, и я получаю ошибку
error: no matching function for call to 'std::exception::exception(const char [23])'
Исследуя проблему, я заметил, что Visual Studio имеет исключение файла, которое имеет класс исключения и принимает char *. Некоторые определения выглядят так:
__CLR_OR_THIS_CALL exception();
__CLR_OR_THIS_CALL exception(const char *const&);
__CLR_OR_THIS_CALL exception(const char *const&, int);
__CLR_OR_THIS_CALL exception(const exception&);
exception& __CLR_OR_THIS_CALL operator=(const exception&);
virtual __CLR_OR_THIS_CALL ~exception();
virtual const char * __CLR_OR_THIS_CALL what() const;
Мой вопрос: как мне обойти эту проблему сборки в mingw gcc? Должен ли я создать новый класс, который наследуется от std :: runtime_error и вместо этого бросает это?