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/