HDTenEightyP/NetNews huggingface dataset:
From: scsr91@csc.liv.ac.uk (Mr. J.A. Coyne)
Newsgroups: comp.lang.c++
Subject: Creating arrays of a class object using default constructor
Date: 7 Sep 92 12:54:15 GMT
Organization: Computer Science, Liverpool University

Using the HP version of AT&T release 2.1 compiler

If I have the following classes

class compound  {

   basic * array; // pointer to class basic

public:

   compound(); // class constructor function

};

//*************************************************
compound::compound()  {

         array = new basic[10];

}

//*************************************************          

which calls up the constructor for the class basic


class basic {

    int * vector;

public:

      basic(int =5) ;

};

//************************************************

basic::basic(int size)  {

   vector = new int[size];

}

The error message I recieve is  : default arguments for constructor for array
of class basic(2005)
From: ark@alice.att.com (Andrew Koenig)
Newsgroups: comp.lang.c++
Subject: Re: zero-length datatype
Date: 11 Sep 92 13:50:56 GMT
Reply-To: ark@alice.UUCP ()
Distribution: comp
Organization: AT&T Bell Laboratories, Murray Hill NJ

In article <1992Sep10.181836.9929@cadsun.corp.mot.com> shang@corp.mot.com writes:

> Note that C g++ implements empty struct or class with size of zero. 
> g++ also allows an array with zero number of member with size of zero.

Unfortunately, this violates the ISO C standard, which explicitly says
that there are no zero-size objects.
-- 
				--Andrew Koenig
				  ark@europa.att.com
Newsgroups: comp.lang.c++
From: J.March@lut.ac.uk
Subject: Re: How many novices?
Reply-To: J.March@lut.ac.uk (Jonathan March)
Organization: Loughborough University, UK.
Date: Mon, 14 Sep 92 17:08:38 GMT

41 so far.

Jon
Newsgroups: comp.lang.c++
From: chasebd@NeXTwork.Rose-Hulman.Edu (Brian D Chase)
Subject: Looking for a good C++ book...
Keywords: help C++ books
Organization: Rose-Hulman Institute of Technology
Date: Tue, 15 Sep 1992 02:36:10 GMT

Distribution: world

I'd appreciate any info on good books covering the C++ language.  I'd prefer
something similar to K&R's "The C Programming Language" if there exists
such a text for C++, but I don't really care too much as long as it's a good  
book.  Sooooo... any suggestions?  There seems to be a whole lot of books out  
there on C++, some of them must be good.  I'm using Borland TC++ if that  
helps any, but for the most part I'm interested in vanilla C++. 

--
------------------------------------------------------------------
  Brian D. Chase        Internet: chasebd@nextwork.rose-hulman.edu
(they call him Sid)           ph:  (812)877-8679
  Rose-Hulman IT, Box#258, 5500 Wabash Ave, Terre Haute, IN 47803
=================[ bit a byte O' bitter batter ]==================
From: rmartin@thor.Rational.COM (Bob Martin)
Newsgroups: comp.lang.c++
Subject: Re: GOTO, was: Tiny proposal for na
Date: 10 Sep 92 23:46:06 GMT

mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:

|In <rmartin.715526582@thor> rmartin@thor.Rational.COM (Bob Martin) writes:


|>Now, granted, there are some cases where the rules of Structure
|>Programming do not create the most efficient possible code.  And in
|>cases where efficiency is of primary importance, then the rules should
|>be violated, without regret.

|There are also places where the rules of Structured Programming do not
|create the most READABLE or MAINTAINABLE code, either.  In these
|cases, as well, they should be jettisoned.  This is the problem with
|having a set of 'usual rules'.  Meeting the rules becomes more
|important to some people than meeting the goals that the rules are
|supposed to be helping you with.

Readability is subjective.  I find code without gotos more readable
than code with gotos.  Others, like you perhaps, find gotos to be more
readable in certain circumstances.  Life would be boring if we were
all the same.

However, maintainability is much less subjective.  Gotos create
dependencies between blocks which complicate their flow patterns.
This makes them intriniscally more difficult to maintain.  Gotos also
tend to be used to merge many different control flows into one.  This
is also difficult to maintain since, as time wears on, exceptions
accumulate in the merged flows.


--
Robert Martin                        Training courses offered in:
R. C. M. Consulting                       Object Oriented Analysis
2080 Cranbrook Rd.                        Object Oriented Design
Green Oaks, Il 60048 (708) 918-1004       C++
Newsgroups: comp.lang.c++
From: dcb@slsvitt (David Binderman 3841)
Subject: ARM code don't work
Summary: cfront 3.1 ready yet ?
Organization: SEL-Alcatel LTS Dept. US/ES
X-Newsreader: Tin 1.1 PL4
Date: Mon, 14 Sep 92 18:11:08 GMT

Hello there,

I tried the code from pages 292 and 293 of the ARM on various C++ compilers.

I found that cfront 2.1, cfront 3.0, GNU 1.39, GNU 222 all got the same answer.

Unfortunately, not the same answer as the ARM.

Can anyone tell me which is right ?

results are

B ctor
A ctor
C ctor
D ctor
E ctor

ARM claims

A ctor
B ctor
C ctor
D ctor
E ctor

Code follows

---------------------- cut here --------------------------------------
extern "C" {
	int printf( const char *, ...);
};

class A {
public:
	A() { printf( "A ctor\n"); };
};

class B {
public:
	B() { printf( "B ctor\n"); };
};

class C : public virtual A, public virtual B {
public:
	C() { printf( "C ctor\n"); };
};

class D : public virtual B, public virtual A {
public:
	D() { printf( "D ctor\n"); };
};

class E : public C, public D {
public:
	E() { printf( "E ctor\n"); };
};

int main() {
	E e;
	return 0;
}

-------------------- cut here ----------------------------------------

Regards
--
David C Binderman  Dept US/ESI, Bau 60, SEL-Alcatel AG, Lorenz Strasse 10,
D-7000 Stuttgart 40, Germany     dcb@us-es.sel.de    +49 711 821 3841
If you lie to the compiler, it will gets its revenge
Newsgroups: comp.lang.c++,comp.unix.programmer,comp.unix.questions
From: jypai@ccnext.csie.nctu.edu.tw
Subject:  wanted: looking for _cxref _ equivalent for c++ (2nd post)
Keywords: cxref
Reply-To: jypai@ccnext.csie.nctu.edu.tw
Organization: Computer Science & Information Engin., Chiao-Tung U, Taiwan, ROC
Date: Thu, 10 Sep 1992 11:56:02 GMT

Dear almighty gurus:

Could someone tell me the name of such an utility, or where
I can get this utility? The same news was posted about 20 days ago, but I
received no response (only some mail showing the same interest.)  So I decide  
to try again.

Thanx.

What is cxref:
--------------
NAME
     cxref - generate a C program cross-reference

     cxref analyzes a collection of C files and attempts to build
     a cross-reference table.  cxref utilizes a special option of
     cpp(1) to include #define'd information in its symbol table.
     It  produces  a  listing  on  standard output of all symbols
     (auto, static, and global) in each file separately, or  with
     the  -c  option,  in  combination.   Each symbol contains an
     asterisk (*) before the declaring reference.



--

Yuan
+----------------------------------------------------------+
| Internet Address         : jypai@csie.nctu.edu.tw        |
| NeXT mail GLADLY accepted: jypai@ccnext.csie.nctu.edu.tw |
+----------------------------------------------------------+
Xref: sparky comp.lang.c++:13452 comp.std.c++:1141
From: tmb@arolla.idiap.ch (Thomas M. Breuel)
Newsgroups: comp.lang.c++
Subject: Re: zero-length datatype
Date: 13 Sep 92 01:25:44 GMT
	<23654@alice.att.com>
Reply-To: tmb@idiap.ch
Distribution: comp
Organization: IDIAP (Institut Dalle Molle d'Intelligence Artificielle
	Perceptive)
In-reply-to: ark@alice.att.com's message of 11 Sep 92 13:50:56 GMT

In article <23654@alice.att.com> ark@alice.att.com (Andrew Koenig) writes:

   In article <1992Sep10.181836.9929@cadsun.corp.mot.com> shang@corp.mot.com writes:

   > Note that C g++ implements empty struct or class with size of zero. 
   > g++ also allows an array with zero number of member with size of zero.

   Unfortunately, this violates the ISO C standard, which explicitly says
   that there are no zero-size objects.

I think Shang's claim is false. GNU C++ 2.2.2 reserves at least 1 byte
for the empty structure.

					Thomas.
Newsgroups: comp.lang.c++
From: shang@corp.mot.com (David (Lujun) Shang)
Subject: Re: zero-length datatype
Reply-To: shang@corp.mot.com
Organization: Motorola, Inc., Software Research and Development, Rolling Meadows, IL. 60008
Distribution: comp
Date: Fri, 11 Sep 92 18:55:05 GMT

In article <23654@alice.att.com> ark@alice.att.com (Andrew Koenig) writes:
> In article <1992Sep10.181836.9929@cadsun.corp.mot.com> shang@corp.mot.com  
writes:
> 
> > Note that g++ implements empty struct or class with size of zero. 
> > g++ also allows an array with zero number of member with size of zero.
> 
> Unfortunately, this violates the ISO C standard, which explicitly says
> that there are no zero-size objects.

That is why ISO C standard does not allow empty structure and zero 
number of array. It prevents zero-size objects perfectly by langauge 
definition. But C++ is differrent. Since C++ allows empty class and 
an empty class can be instantiated, the zero-size object can only be 
prevented through the language implementation (In this sense, I should 
say the implementation somehow distorts the real meaning of an empty 
object!). If we realy want to prevent zero-size object, we should 
DISALLOW an empty class to instantiate object, i.e. an empty class 
should be an abstract class.

But I don't see the reason why we can't have zero-size objects. Don't 
say that the standard explicitly says that. I want to know why it says 
that. So far, I haven't heard any convincing argument.

David Shang
From: brians@hpcuhe.cup.hp.com (Brian Sullivan)
Newsgroups: comp.lang.c++
Subject: Re: How do I write a typedef to go with my template class?
Date: 9 Sep 92 03:33:13 GMT
Organization: Hewlett Packard, Cupertino

I have also had problems with typedef's inside of a template class.
I have been using the lastest cfront based compiler cfront 3.1
which supports template classes, but it won't allow any typedef's
involving a generic type (the type passed to the template, X in your
example).  I get a not implemented message.  I then have to give
a non-typedef declaration every time that I want to pass a function type
to a template class.  It is very ugly, and I hope that USL implements
this feature before C++ 4.0.
Newsgroups: comp.lang.c++
From: arthur@@solomon.technet.sg (Arthur Sombrito)
Subject: elaborated type-spec scope?
Organization: National University of Singapore
X-Newsreader: TIN [version 1.1 PL6]
Date: Wed, 16 Sep 1992 02:10:41 GMT


I'd like to ask some questions regarding C++ v3.0 rules on
elaborated type specifiers which are not discussed (as far
as I could tell) in the ARM.

If an elaborated-type-specifier introduces a new class name, at 
what scope would the new name be added? Is it the current scope
or the file scope?  For example:

  class C
  {
    struct T;		// ok - C::T
    struct S *sP;	// Is S created as C::S or ::S?
  };
  S *sP;		// undefined symbol "S" error?

ARM 9.1 states "A class declaration introduces the class name 
into the scope where it is declared..." and 
"An elaborated-type-specifier ... differs from a class 
declaration in that if a class of the elaborated name is in scope
the elaborated name will refer to it."

If I understood it correctly, "S" should have been created in
class scope of "C".  The problem is it is not what comes out
when I tried testing it on cfront 2.1, g++ and BC++.  All of them
create the name at file scope.

Assuming that it is created at the current scope, then the following
would no longer be valid:

       :
       :
   void f(class C *cP) // first instantiation of "C"
   {...} 
       :
       :

since class C would be created at the local scope of the function.

Thanks for any reply.
From: RICHARD@NIXON.ttt.kth.se
Newsgroups: comp.lang.c++
Subject: Strange error. GCC 2.2.2
Date: 6 Sep 92 16:09:46 GMT
Organization: Department of TeleTransmission Theory

I have the following code:

	struct foo
	{
	  char *s;
	  foo(char *x)	{ s=x; }
	};

	struct bar
	{
	  foo * v;
	  bar ()	{ v=0; }
	  bar (foo * x) { v=x; }
	  bar & operator = (bar & x) { v=x.v; return *this; }
	};

	struct cookie
	{
	  foo * v;
	  cookie ( foo * x) { v=x; }
	};

	cookie cat(&foo("apabepa"));

	struct cake
	{
	  bar v;
	  cake ( bar & x ) { v=x; }
	};

	cake monkey(&foo("haha")); // <---- GCC barfs here

At the place where gcc barfs, it is cc1plus with gives me a fatal signal 11.

It is fixed by spliting that line with:

	foo monkey_dummy("haha");
	cake monkey(&monkey_dummy);

Details: note that the argument passed to the cake constructor is a foo *,
and thus is converted to bar with the constructor bar(foo *).

The definition of cat works like charms.

What I would like to know is if the contruction GCC barfs on is legal (and
thus, there is a bug in GCC), or if I tried to do something illegal.

I do not have the ARM, so those who have, please tell me.

--
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++!
! Richard Levitte, System manager       ! tel: int+46-8-790 64 23           !
! Royal Institute of Technology         ! fax: int+46-8-791 76 54           !
! Department of Teletransmition Theory  ! Internet: richard@ttt.kth.se      !
! S-100 44 Stockholm, Sweden            !                                   !
!---------------------------------------------------------------------------!
Newsgroups: comp.lang.c++
From: steve@taumet.com (Steve Clamage)
Subject: Re: virtual destructor warning
Organization: TauMetric Corporation
Date: Mon, 7 Sep 1992 00:50:34 GMT

esw@po.CWRU.Edu (Eric S. Wallace) writes:

 [condensed]

|class ibuf {
|public: ...
|  ~ibuf(void) { /* ... */ }
|};

|class obuf {
|public: ...
|  ~obuf(void) { /* ... */ }
|};

|class iobuf : public obuf, public ibuf { ... }

|When compiling with gcc-2.2.2, I get the following warning:
|  destructor `ibuf::~ibuf()' non-virtual in relationship `iobuf: ibuf'

| ...
| Why would ibuf::~ibuf have to be virtual?

Destructors don't have to be virtual, which is why you got a warning
rather than an error message.  If destructors are not virtual, you risk
losing polymorphism.  Example:
	ibuf* = new iobuf(...);
	...
	delete ibuf;
In this case, the iobuf destructor is not called, and hence the obuf
destructor is not called either.  If the base class destructors were
virtual, the destructors for the actual constructed class would be
called, which is normally what you want.

Cases where you want non-virtual destructors in base classes are rare,
and g++ is just being helpful in reminding you of that.
-- 

Steve Clamage, TauMetric Corp, steve@taumet.com
Vice Chair, ANSI C++ Committee, X3J16
Newsgroups: comp.lang.c++
From: steve@taumet.com (Steve Clamage)
Subject: Re: Problems with int as enum
Organization: TauMetric Corporation
Date: Mon, 14 Sep 1992 17:36:19 GMT

cee1@ra.msstate.edu (Charles Evans) writes:

>int random(void);

>enum suit { clubs, diamonds, hearts, spades };

>struct card { suit s; int pips };
-------------------------------^	<----------------
>...

>void init_deck(card d[])
>{
>	for (int i = 0; i < 52; ++i)
>	{
>		d[i].s = (i / 13);   // enum as int ? -- WARNING #1
>		d[i].pips = 1 + i % 13;
>	}
>}
>void shuffle(card d[])
>{
>	for (int i = 0; i < 52; ++i)
>	{
>		int k = random() % 52 	// choose a random card
-------------------------------------^	<----------------
>		card t = d[i];		// swap two cards ERROR #2, #3
>		d[i] = d[k];
>		d[k] = t;		// ERROR #4
>	}
>}

You are missing semicolons at the two marked places.  The second one
is the cause of errors 2, 3, and 4.

Warning #1 is exactly what it says.  You are assigning an int value
to an enum object.  You can turn off the warning with an explicit
cast, but the practice is still dangerous.  If you make any change
in the definition of "suit", the code may continue to compile but
may not run correctly.

Example: Suppose you change the definition to 
    enum suit { clubs = -2, diamonds = -1, hearts = +1, spades = +2 };
so that red/black can be determined by "abs(s)==1" and major/minor
can be determined by sign.  The code which naively assigns integer
values could wind up with impossible enum values.

It is safer to do something like
	switch( expression ) {
	    case clubs:    s = clubs;	 break;
	    case diamonds: s = diamonds; break;
	    case hearts:   s = hearts;	 break;
	    case spades:   s = spades;	 break;
	}
This code is always correct, no matter how the definition of suits changes.
-- 

Steve Clamage, TauMetric Corp, steve@taumet.com
Vice Chair, ANSI C++ Committee, X3J16
Newsgroups: comp.lang.c++
From: srikant@skorpio.usask.ca (Srikant Subramaniam)
Subject: Problems with constructor in C++
Organization: University of Saskatchewan, Saskatoon, Canada
Date: Mon, 14 Sep 1992 22:50:41 GMT

Hello Netters:

I have a rather peculiar problem with constructors in C++. In the code
fragment below, the constructor for AtomicInt is not executed at all.

File chore.h
------------

Class Chore : public DLINK {

	......
	.......

	AtomicInt numworkers;
public: Chore ( .......) {
	
	}
} // Class Chore

File atomic_int.h
------------------

Class AtomicInt {

	...........

	AtomicInt() { .......}
	AtomicInt(int x) { ......}
	AtomicInt(AtomicInt& x) { .......}
}

When the code is executed, the constructor for AtomicInt doesn't get executed
at all. My understanding of C++ was that when the initialization is done as
in AtomicInt numworkers, the constructor is automatically executed. I hope I'm
not wrong :-(

Could somebody out in net.land  clarify this ?

----- 
 |\/\/\/|      Srikant Subramaniam.
 |      |      srikant@cs.usask.ca 
 |	|
 |      |      Disclaimer: This is not what really I look like. 	
 | (o)(o)      Disclaimer: I didn't do it, nobody saw me do it, 
 C      _)                  can't prove anything. 
  | ,___|             
  |   /     
  /---\    
Newsgroups: comp.lang.c++
From: kohler@alvserv-2.dfki.uni-kl.de (Markus Kohler)
Subject: HELP: oath and owc
Keywords: oath,owc,lib
Organization: DFKI Kaiserslautern
Date: Wed, 9 Sep 1992 13:46:51 GMT



Please help me ! 

I want to install the C++ library OATH on my sparcstation. I can't compile it.
I've installed OWC 2.4 (ATT 2.1 standard c++). Please help me. 



Newsgroups: comp.lang.c++
From: ort@netcom.com (David Oertel)
Subject: Re: Borland BIDS Library
Date: Mon, 14 Sep 92 07:21:43 GMT
Organization: Netcom - Online Communication Services  (408 241-9760 guest) 
Summary: simple BIDS template example



>> The following is a short program that I can't get to compile. I get
>> the following error:

>> \borlandc\classlib\include\listimp.h 502: Illegal structure operation


>> Am I doing something wrong or are the BIDS libraries useless?
>> (My guess is the former.:)

>> I am using BC++3.1 w/AF


>> thanks

>> Todd Dukes

>> /* attempt to use BI_ListImp */

>> #include <listimp.h>

>> class point
>> {
>> 	...
>> };

Add the following line here:
typedef BI_IListImp<point> PointListTyp;

>> void main()
>> {
Remove the following line:
>> 	BI_IListImp<point> PointList;

Add the following line here:
	PointListTyp Pointlist;

>> 	point * pp = new point(1,1);

>> 	PointList.add(pp);

>> }

	I'm using BIDS with success.

	Dave Oertel
	ort@netcom.com
--
From: ucosmo@mcl.ucsb.edu (Boris Burtin)
Newsgroups: comp.lang.c++
Subject: Reference to a pointer??
Keywords: pointer, reference
Date: 10 Sep 92 20:36:17 GMT

I have not been able to dig up any information on how to change a pointer 
inside a function (aside from the good old dual-pointer C solution).  I know
that, for example, an int can be changed in a function like so:

void f(int& i)
{
	i = 0;
}

So why can't you do this:

void f(int& *p)
{
	p = 0;
}

Or do I just have the syntax wrong?

--
     - Boris
(cosmo@cs.ucsb.edu)
From: pjl@sparc10.cs.uiuc.edu (Paul Lucas)
Newsgroups: comp.lang.c++
Subject: Re: operator overloading
Keywords: pointer usage
Date: 14 Sep 92 15:29:26 GMT
Organization: University of Illinois at Urbana-Champaign

In <14513@goanna.cs.rmit.oz.au> djds@goanna.cs.rmit.oz.au (DARYL JOHN D'SOUZA) writes:

>I am seeking clarification of the following note in the Stroustrup text
>(bottom of page 236):

>	"Pointers can not be used because it is not possible to redefine 
>	the meaning of an operator when applied to a pointer."

>I tried the following program which seems to compile and run, in contradiction
>to this statement.  I'm sure the problem lies with my misinterpretation of
>Stroustrup's note, but either way, would someone please elaborate.  Here is
>my C++ program:


>//--------program begin
>#include <iostream.h>
>#include <iomanip.h>

>class nat { // natural number class
>	int val;
>public:
>	nat(int i) { val = i; }
>	nat(const nat & n) { val = n.val; }
>	nat & operator = (const nat & n) { val = n.val; return *this; }
>	nat & operator = (int i) { val = i; return *this; }
>	nat operator +(const nat * & r) { return nat(val + r->val); }
>	int access() { return val; }
>};

>main()
>{
>	nat i = 10, j = 20, *p = &j;

>	i = i + p;
>	cout << i.access() << ' ' << j.access() << ' ' << (*p).access() << endl;
>	i = *p + &i;
>	cout << i.access() << ' ' << j.access() << ' ' << (*p).access() << endl;
>	*p = i + &j;
>	cout << i.access() << ' ' << j.access() << ' ' << (*p).access() << endl;
>}

*****>	So what's the problem?  The line:

		i = i + p;
	
	is:
		i.operator=( i.operator+( p ) );
	
	that is, you've always got a 'nat' on the LHS of the '+'.  The
	operator is being overloaded for that, not its argument.
	Overloaded operators must have at least one class or
	class-reference argument; for members, this argument is
	implicit.
-- 
	- Paul J. Lucas				University of Illinois	
	  AT&T Bell Laboratories		at Urbana-Champaign
	  Naperville, IL			pjl@cs.uiuc.edu
Newsgroups: comp.lang.c++
From: misra@ctp.com (Mark Israel)
Subject: Expert Systems Class Libaries
Date: Fri, 4 Sep 1992 13:17:40 GMT
Organization: Canbridge Technology Partners
Keywords: C++, Expert Systems, Class

Does anyone know of or have any information about Expert System Class libraries?  

-- 
Mark Israel
Cambridge Technology Partners
misra@ctp.com
+1 617 374-8211
From: wagner@ike.ucdavis.edu (John Wagner)
Newsgroups: comp.lang.c++
Subject: new array w/ initializers...
Date: 11 Sep 92 03:40:12 GMT
Reply-To: wagner@ike.ucdavis.edu
Organization: University of California, Davis

something like the following:

class Vector {
	private:
		double *vals;
		int dim;
	public:
		Vector (int dimension) {
			etc...
		}
	...
};  //  End Class Vector

main () {
	Vector *vecs;
	vecs = new Vector[10] (3);
}

The intent is to create an array of Vectors of dimension 3.
I have run into this problem over and over again, and I don't
see any logical reason for this not being possible (except
possibly oversight).  Surely others have had this same idea.

---
John Wagner
Institute of Theoretical Dynamics
University of California, Davis

Bush/Quayle 1992: Saddam has a job, do you?

My opinions aren't even mine, much less those of anyone else...
+------------------------------------+----------------------------+
| jmwagner@ucdavis.edu               | Wenn Du meinen Quelltext   |
| jmwagner@ucdavis                   | verstehen kannst, bist Du  |
| {ucbvax, lll-crg}!ucdavis!jmwagner | mir einen Schritt voraus!  |
+------------------------------------+----------------------------+
From: sm86+@andrew.cmu.edu (Stefan Monnier)
Newsgroups: comp.lang.c++
Subject: Re: help
Date: 5 Sep 92 06:51:49 GMT
Article-I.D.: andrew.IeeAa5u00awMIEilcZ
Organization: Junior, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA

Excerpts from netnews.comp.lang.c++: 4-Sep-92 help Jing X
Ding@hertz.njit.e (34)

> Jing Ding(jxd7299@hertz.njit.edu)


Ok, Ok, don't worry, I'm here !


	Stefan Monnier

-----------------------------------------------------
-- On the average, people seem to be acting normal --
-----------------------------------------------------
Newsgroups: comp.lang.c++