Получение ошибки компилятора 'двоичный' << ': оператор не найден' в VS 2005 - PullRequest
0 голосов
/ 02 мая 2018

Я получаю сообщение об ошибке ниже компилятора при создании проекта:

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;
    }
   ..}

Как восстановить эту ошибку?

Спасибо Рагу

...