Я получаю сообщение об ошибке ниже компилятора при создании проекта:
XMLHelper.h (22): ошибка C2678: двоичный файл «<<»: не найден оператор, который принимает левый операнд типа «COSB :: AnyException» (или нет приемлемого преобразования) </p>
Код XMLHelper.h:
class XMLException : public COSB::Exception
{
public:
XMLException(const MSXML2::IXMLDOMParseErrorPtr &verr, const char *prefix_description="XML error")
: Exception(verr->errorCode)
{
/*line 22 error line */
*this << prefix_description << " " << std::hex << long(verr->errorCode) << std::dec;
...}
XMLHelper.h не является частью моего проекта. Я проверил файл exception.h, который имеет определение функции ниже:
class ExceptionBase : public std::exception
{ ...}
// Any exception including Win32 structured exceptions and COSB::Exception.
class AnyException: public ExceptionBase
{
public:
// This insertion operator needed to be declared as a member function or the
//compiler gets confused as to which template function to apply.
// Notice that stateful stream manipulators like width will probably not
//work
AnyException &operator<<( std::ostream& (_cdecl *f)(std::ostream&) )
{
ExceptionBufferStream buf(FormatHolder());
(*f)(buf);
AppendToDescription(buf.c_str(),buf.LineSize());
return *this;
}
..}
Как восстановить эту ошибку?
Спасибо
Рагу