g++ DiagnosticsTest.cpp

produces such an output:

In file included from DiagnosticsTest.cpp:6:
Diagnostics.hpp:29: internal compiler error: in type_dependent_expression_p, at cp/pt.c:12037
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://cygwin.com/problems.html> for instructions.

The version (g++ -v) output:
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --verbose --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)



#include <iostream>
#include <string>

using namespace std;

#include "Diagnostics.hpp"


void howtouse()
{
        cout<<"Usage: DiagnosticsTest";
        
};


int main(int argc, char ** argv)
{
        if (argc!=1)
        {
                howtouse();
                return 10;
        }

        Diagnostics diagnostics;

        diagnostics<<"First line.\n";
        diagnostics<<"Second line.\n";
        diagnostics<<"Third line.\n";

        diagnostics.output_mode=text_output;
        cout<<"Text:\n"<<diagnostics<<endl;
        diagnostics.output_mode=comment_output;
        cout<<"Comment:\n"<<diagnostics<<endl;
        diagnostics.output_mode=html_output;
        cout<<"HTML:\n"<<diagnostics<<endl;

        return 0;
}
/****************************************************************************\
SeSiMCMC. Looking - for - motifs by MCMC project. (c) A. Favorov 2001
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
For general describtion of the classes declared in the header, see headers.txt 
$Id: ResultsSet.hpp,v 1.57 2007/05/10 15:17:16 favorov Exp $
\****************************************************************************/

#ifndef _DIAGNOSTICS_HPP
#define _DIAGNOSTICS_HPP

#include <sstream>

using namespace std;

typedef enum {unknown_output=-1,text_output=0,comment_output=1,html_output=2} 
output_mode_type;

class Diagnostics:public ostringstream
{
        Diagnostics(const Diagnostics &);
        Diagnostics & operator=(const Diagnostics &);
public:
        output_mode_type output_mode;
        Diagnostics(output_mode_type o_mode);
        void  text_output(ostream &)const;
        void  comment_output(ostream &)const;
        void  html_output(ostream &)const;
};

inline Diagnostics::Diagnostics(output_mode_type o_mode=text_output):
                                                                
output_mode(o_mode){};

inline void Diagnostics::text_output(ostream & o) const
{
        o<<str();
}

inline void Diagnostics::comment_output(ostream & o) const
{
        o<<"#";
        for (string::iterator it=str().begin();it<str().end();it++)
        {
                switch (*it)
                {
                case '\r': break;
                case '\n': o<<"\n#";break;
                default: o<<*it;
                }
        }
}

inline void Diagnostics::html_output(ostream & o) const

{
        o<<"<b>";
        for (string::iterator it=str().begin();it<str().end();it++)
        {
                switch (*it)
                {
                case '\r': break;
                case '\n': o<<"<br>";
                default: o<<*it;
                }
        }
        o<<"</b>";
}


inline
ostream & operator << (ostream &o, const Diagnostics & di)
{
        switch (di.output_mode)
        {
        case text_output:
                di.text_output(o);
                break;
        case comment_output:
                di.comment_output(o);
                break;
        case html_output:
                di.html_output(o);
                break;
        default:
                o<<"Output format parameter is undefined.\n";
                di.text_output(o);
        }
        return o;
};


#endif // _DIAGNOSTICS_HPP

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to