HDTenEightyP/NetNews huggingface dataset:
From: mat@mole-end
Subject: Re: Committee Members -> What do you think?
Summary: Off-line discussion, anyone?
Organization: :
Date: Mon, 20 Jul 1992 17:51:04 GMT

On operator.() :

> On the contrary "almost everybody" will have no say in this matter, as
> history has already shown.  On the contrary, a couple people on the 
> extensions committee will either support the idea, or talk it down, and
> that will be sufficient to get it on, or keep it off, the floor of the
> committee whole for a vote.
 
How many people would be interested in an off-line discussion by e-mail?
E-mail to me, please.  If there is interest, I will see what I have to
do to get a working mailing list up here.  ``Interest'' means some kind
of commitment of three to six people to think, argue, come to consensus,
write some text, criticize some text, rewrite some text ....

I warn you--I will play out my agenda, which is to see a particular version
of this  operator.()  proposal put into shape such that it has a chance of
being seriously examined by the Extensions WG.  This will be a lot of work,
both brain work and scut work.  If you feel it's worth your time, your
inspiration, and your perspiration, please let me know.
-- 
 (This man's opinions are his own.)
 From mole-end				Mark Terribile

 uunet!mole-end!mat, Somewhere in Matawan, NJ
Newsgroups: comp.lang.c++
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: mat@mole-end where are you?
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Tue, 21 Jul 1992 20:08:57 GMT

My email to mat@mole-end bounced. Got an IP number?
I would like to join suggested operator.() group :-)

-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Newsgroups: comp.lang.c++
From: exk11@po.CWRU.Edu (Erik Kangas)
Subject: ".", "->" operators and member data declarations
Reply-To: exk11@po.CWRU.Edu (Erik Kangas)
Organization: Case Western Reserve University, Cleveland, OH (USA)
Date: Tue, 21 Jul 92 14:10:38 GMT


   I'm writing a memory management class in borland c++ that has
access to XMS, EMS and VDISK memory and handles it transparently
with conventional memory via handles.
   However, To handle structures in memory, I currently have to 
set up a number of constants relating to the byte offsets of the
data in the structure.  Then add the byte offset to the handle using
an overloaded "+" operator like so...

#define i 0
#define x 4

struct foo {
    long ident;
    char xfer;
    };

.....

Handle Fooptr = Malloc(sizeof(foo));

Fooptr + x = "P";

......

    I would like to use some operator, ( I know "." is reserved and  "->"
only returns a pointer to the structure.) that would know the offset of
"xfer" in structure foo without me having to declare all the defines.
I should be able to do a "Fooptr.xfer = "P"".
    Does anyone know of a built in way of transferring these offset values
and how I could tie them into overloaded operators?

Thank you.

-- 
Erik Kangas  
Physics/Math/CompE         "I lift up mine eyes unto the hills whence  
Phone 754-2316              cometh my strength"  Psalms                
Zeta Psi #304               Whereof we cannot speak, Thereof we must be silent.
Newsgroups: comp.lang.c++
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: Power Operator vs NANs
Keywords: ansi net
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Tue, 21 Jul 1992 18:19:48 GMT

In article <849@nazgul.UUCP> bright@nazgul.UUCP (Walter Bright) writes:
>
>I don't have the specs in electronic form. But they have been included in
>the latest ANSI C++ mailing.
>
>The additional operators are:
>	<	less
>	>	greater
>	<=	less or equal
>	>=	greater or equal
>	==	equal
>	!=	unordered, less or greater
>	!<>=	unordered
>	<>	less or greater
>	<>=	less, equal or greater
>	!<=	unordered or greater
>	!<	unordered, greater or equal
>	!>=	unordered or less
>	!>	unordered, less or equal
>	!<>	unordered or equal
>
>

	OH! Nice. These would be GREAT for sets too!

-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Newsgroups: comp.lang.c++
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: Novice? question: Designing for mul
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Wed, 29 Jul 1992 16:51:50 GMT

In article <rmartin.712269742@thor> rmartin@thor.Rational.COM (Bob Martin) writes:
>maxtal@extro.ucc.su.OZ.AU writes:
>
>>In article <rmartin.711298357@thor> rmartin@thor.Rational.COM (Bob Martin) writes:
>>>maxtal@extro.ucc.su.OZ.AU (John (MAX) Skaller) writes:
>
>|>|#define KLUDGE
>|>|#ifndef KLUDGE
>|>|class V {public: virtual void f()=0; virtual void g()=0;};
>|>|#else
>|>|class V {public: virtual void f(){printf("ERROR V::g\n");} 
>|>|	virtual void g(){printf("ERROR V::g\n");}};
>|>|#endif
>|>|class A1 : public virtual V {public: void f(){printf("A1::f\n");}};
>|>|class A2 : public virtual V {public: void g(){printf("A2::g\n");}};
>|>|class D : public A1, public A2 {};
>|>|int main()
>|>|{
>|>|	D* d=new D;
>|>|	A1 * a1=d;
>|>|	A2 * a2=d;
>|>|	V * v = d;
>|>|	d->f(); a1->f(); a2->f(); v->f();
>|>|	d->g(); a1->g(); a2->g(); v->g();
>|>|}
>|>
>ARM 10.3 "Pure virtual functions are inherited as pur virtual functions."
>
>Your A2 has inherited pure virtual f.  So, should D inherit it too?
>Or should it preferentialy choose the function defined in A1.  The ARM
>seems to indicate in 10.10c that A1::f will be used by D, but 10.3
>also seems to state that D::f will be pure virtual.  This is an
>ambiguity.

	In the wording in the ARM. The definition of abstract class
is flawed by imprecise wording. It says 'have a function'. Which
is not precise enough to resolve the ambiguity.

>
>|	The fact that it works when KLUDGE is defined PROVES that.
>
>By setting KLUDGE, you take 10.3 out of the picture, and the ambiguity
>is resolved.  

	I understand that. But the ARM has simply given
a flawed (ambiguous) definition of abstract class.
>
>Should 10.3 hold sway in the presence of 10.10.c?  Good question.  I
>can see arguments supporting both sides. 

	I see no options at all. It is CLEARLY the intent of
an abstract class to be one which cannot be instantiated because
there exists a virtual function which can be called which
is pure.

	No such function exists for D. D is concrete.

	The issue has been discussed before. I believe it
has been resolved.
-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Newsgroups: comp.lang.c++
From: jimad@microsoft.com (Jim Adcock)
Subject: Re: New C++ type: boole
Date: 29 Jul 92 19:51:55 GMT
Organization: Microsoft Corporation

In article <1992Jul27.144523.2372@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:
|Sounds like you just broke a big part of the world to me.  This is
|also highly non-orthoganal, in that you have a quantity ('ptr') which
|you say you are going to issue a warning on in a logical context, but
|you can do a simple negation and it becomes acceptable.  It should
|work the same way for 'ptr' and '!ptr'; either both should be legal or
|both should give warnings.  If you make both give warnings, you have
|once again broken a big part of the world.  Hence, neither should give
|warnings. 

If 'boole' is not going to break millions of lines of existing code, then
at least the following *implicit* conversions have to be supported:

int to boole
boole to int
pointer to boole

Given these implicit conversions, the only remaining "feature" I can
see for boole is that it allows one to "exact match" on function parameters:

	cout << (foo == bar);

could cause "TRUE" or "FALSE" to be printed, for example.

A similar, and more important problem [IMHO] occurs because w_char is not
a separate type:

	w_char chSqrt = '\x221A';

  cout << chSqrt;

doesn't cause the Unicode square root sign to be printed out, but rather
some decimal integer.
From: tmb@arolla.idiap.ch (Thomas M. Breuel)
Newsgroups: comp.lang.c++
Subject: Re: Power Operator vs NANs
Date: 22 Jul 92 01:54:36 GMT
	<14hm92INNrt0@agate.berkeley.edu>
Reply-To: tmb@idiap.ch
Organization: IDIAP (Institut Dalle Molle d'Intelligence Artificielle
	Perceptive)
In-reply-to: jbuck@forney.berkeley.edu's message of 21 Jul 92 18:50:10 GMT

In article <14hm92INNrt0@agate.berkeley.edu> jbuck@forney.berkeley.edu (Joe Buck) writes:

   One could still implement the comparison operators that you
   describe [i.e., the new NCEG comparison operators] that consider
   the possibility of unordered values (NaNs) and have the same syntax
   work on machines that don't have NaNs.  It would just be that the
   test for two values to be unordered would never come out true on
   such machines.

I remain unconvinced (even after having read the NCEG document),
however, that an algorithm that needs to rely on the new NCEG
comparison operators will do anything reasonable on architectures that
don't support NaN's or Inf's.

Frankly, I'd much rather have an error flagged at compile time
("isnan() not defined") than wonder why some numerical algorithm out
of some library goes into an infinite loop once in a blue moon when I
compile it on my non-IEEE machine.

					Thomas.
From: edmt@void.rni.sub.org (Ernst-Dieter Martin)
Newsgroups: comp.lang.c++
Subject: Re: OO databases OBJECTSTORE vs ONTOS
Date: 23 Jul 92 20:01:25 GMT
Organization: me, not organized, Mannheim, Germany

In article <1992Jul20.173530.28999@athena.mit.edu> berczuk@space.mit.edu (Steve Berczuk) writes:


>Does anyone out there have any experiences with either Ontos or
>ObjectDesign;'s object store as a database for C++ objects? 
>(even better, has anyone done any comparisions?)

Well, I just finished 8 weeks of testing ONTOS.

>what I know comparison wise (so far) is this (please correct me if I 
>misstate anything):

The goal for my test wasn't a comparison of OODBMS, but decision support
for using OODBMS at all.

>*) Ontos seems to support a richer (and more SQL like if that is worth
> anything) query facility.
It feels like SQL, it looks like SQL, it _is_ ObjectSQL. But:
It's just querying. No INSERT, UPDATE and DELETE. There is no 
interactive facility. You have to write your program around it.
It's (fortunately) not Embedded SQL. And it might follow pointers
inside your object to other objects. And you are able to call
methods of your class.

>*) Ontos is inheritance based while Objectstore is not.
ONTOS is inheritance based, don't know nothing about Objectstore.

>*) Object store has less effect on your code but is based on 
> language extensions
You have to write some required methods: at least two constructors
and a type-information facility. But it has more effect to your Code:
To me it seems quite handy.

>*) ODI sales reps seem to not return calls 
ONTOS representatives do, at least in Germany.

>Any comments would be appreciated,,, thanks,
Sometimes i'm to enthusiastic, and often to much concerned.
E.g. I went through ups and downs during my test and I haven't
decided yet to recommend it. I'm tending to YES and if it will be
a NO, it will be a NO, not yet.

Bye
Ernst-Dieter

-------------------------------
hah, no disclaimer this time, because it's my opinion and i was
asked for it :-)-- 
+--------------------+-----------------------------------------------------+
|Ernst-Dieter Martin |     - this space left for your advertisement -      |
|Mannheim, Germany   |      - this space intentionally left blank -        |
+--------------------+------------------------EMAIL: edmt@void.rni.sub.org-+
Newsgroups: comp.lang.c++
From: euamts@eua.ericsson.se (Mats Henricson)
Subject: Re: Design of Constructors
Organization: Ellemtel Telecom Systems Labs, Stockholm, Sweden
Date: Fri, 31 Jul 1992 12:46:26 GMT

bcannard@hppcb36.mentorg.com (Bob Cannard @ PCB x5565) writes:

>horvath@granite.ma30.bull.com (John Horvath) writes:
>> Executive summary: If constructors can't return values, is it their intent
>> they should not try to do anything that can fail?

>No, the idea is that they throw an exception if they fail. Pity it's taking so
>long for the blasted things to get implemented...

The problem arises when your destructors fail... :-/

See ARM page 364.

Mats Henricson
Newsgroups: comp.lang.c++,comp.std.c++
From: steve@taumet.com (Steve Clamage)
Subject: Re: Language extensions for run-time type identification
Organization: TauMetric Corporation
Date: Tue, 21 Jul 1992 16:27:00 GMT

jbuck@forney.berkeley.edu (Joe Buck) writes:

>* the fact that it is trivial to force any class for which run-time type
>  identification is needed to have a virtual function table (simply add
>  a virtual destructor).

Right.

In cases where you don't want a virtual destructor, you can add a
dummy do-nothing function.  This will force the creation of a
virtual table without adding any run-time code to object destruction.

class base {
    ...
protected:
    virtual void no_op(){};
};
-- 

Steve Clamage, TauMetric Corp, steve@taumet.com
Vice Chair, ANSI C++ Committee, X3J16
Newsgroups: comp.lang.c++,comp.object
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: The "has-a" relation in C++ ? How ? 
Keywords: object,C++,has-a
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Tue, 21 Jul 1992 15:30:14 GMT

In article <1992Jul20.212525.5081@dsg.tandem.com> narayan@aravali.everest.tandem.com (Pankaj Narayan) writes:
>Books typically go over the "is-a" relationship in much detail, saying how
>C++ has this great inheritance mechanism to support this sort of a relationship.
>
>However, when it comes to the "has-a" relationship, they don't really talk about
>or give implementation examples of how that is done in C++.  The Coad/Yourdon
>OOD book talks a little about it, and says that it can be done in a couple of ways,
>but does not give any substantial example.
>
	Thats because you already know how to do it.

	struct X { 

		Y y;

	};

X 'has-a' Y, namely, y.


-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Newsgroups: comp.lang.c++,comp.std.c++
From: shang@corp.mot.com (David (Lujun) Shang)
Subject: Re: run-time type checking (was: Re: Covariant Types in Derived Classes)
Reply-To: shang@corp.mot.com
Organization: Motorola, Inc., Software Research and Development, Rolling Meadows, IL. 60008
Date: Wed, 29 Jul 92 16:24:40 GMT

In article <1992Jul28.210755.3548@ucc.su.OZ.AU> maxtal@extro.ucc.su.OZ.AU (John  
MAX Skaller) writes:
> >
> >> NOW: I want to demonstrate why using RTTI is WRONG in this case,
> >> and why the Species() function is required.	
> >>
> >Remenber, your function Species() IS JUST FOR THE PURPOSE TO PROVIDE RTTI. 
> 
> 	Yes. I'm not against having run-time-type information
> available. 

See your original statement -- what you want to demonstrate.

> >> 
> >> The demonstration is so simple, and applies so generally, I wonder
> >> why I didnt think of it before.
> >> 
> >> 	class DOG : Animal { ....
> >> 	class HUND : Animal { .. // german programmer
> >> 
> >This is never an execuse. If it is, your Species() function has the same  
> >problem:
> >
> > 	char* DOG::Species()
> >        { return "DOG"; }
> > 	char* DOG::Species()
> >        { return "HOUND"; }   // german programmer
> 
> 	What?? The compiler catches this error: it is a duplicate
> definition.
>
The class DOG can be declared as static in different modules and it is highly  
possible if an Australian and a German work for the same project that is  
separated into many different modules.
 
> Actually, I think downcasting is OK when you already knew what the
> type was, or could have. Then it is just a convenience. And safe.
> 
Then we have not disagreement any more.


David Shang

Newsgroups: comp.lang.c++
From: pjcondi@lepton (Paul Condie)
Subject: const on pass by value
Organization: Pacific * Bell
X-Newsreader: Tin 1.1 PL4
Date: Fri, 24 Jul 1992 15:10:10 GMT

Should pass by value arguments be declared as "const" for
good coding style?  Or is that nit picking?

For example:

void foo (const int a);
or
void foo (int a);

Newsgroups: comp.lang.c++
From: jc@sci.kun.nl (Jan Christiaan van Winkel (ATC))
Subject: Re: 128-bit math
Organization: University of Nijmegen, The Netherlands
Date: Thu, 30 Jul 1992 07:35:11 GMT

In <AVENGER.92Jul28134534@realsoon.WPI.EDU> avenger@realsoon.WPI.EDU (Sam Pullara) writes:


>Has anyone implemented a quad precision library for C++?  How
>difficult would something like this be?
Take a look in the latest Dr. Dobbs Journal (August 1992). It contains sourcecode 
(which can also be downloaded from I believe SIMTEL) for doing multi-word
arithmetic in C. (i.e. 64, 128, 256, ... bit words).
Hope theis helps.
JC
--
___  __  ____________________________________________________________________
   |/  \   Jan Christiaan van Winkel                        jc@sci.kun.nl
   |       Alternative e-mail addresses: jc@oreo.atcmp.nl and jc@atcmp.nl
__/ \__/ ____________________________________________________________________
Newsgroups: comp.lang.c++
Subject: Comments on CodeBase 4.5 ?
From: cameron@cosc.canterbury.ac.nz (C. Farquhar)
Date: 22 Jul 92 21:16:04 +1200
Distribution: world
Organization: Computer Science,University of Canterbury,New Zealand

Hi,

I'm thinking about purchasing CodeBase 4.5. CodeBase is a dBase library.
I'm using Borland Turbo C++ for Windows.

Has anyone had any problems with CodeBase 4.5 under Turbo C++ ?
Do you think CodeBase would be a good choice for large databases ?

Thanks,
Cameron.

Newsgroups: comp.lang.c++
From: root@trl.oz.au (System PRIVILEGED Account)
Subject: Problem with C++ V3.0.1 on Sun3
Organization: Telecom Research Labs, Melbourne, Australia
Date: Thu, 30 Jul 1992 00:21:38 GMT

I have been trying to make C++ V3.0.1 on a sun 3. In fact the make
has been successful (sort of). After installation I have tried to
compile the following program

#include <iostream.h>

class	A {
	public:
		int	a;
		operator int()	const {return a;}
		friend ostream&	operator<<(ostream& o, const A&) {
			return o;
		}
};

main()
{
	A	a;
	cout << a << endl;
}

My problem is that the compiler complains about an ambiguous operator
<< defined for
	(ostream &, const A&) in the above source
clashing with << defined for
	(ostaream &, int) defined in iostream.h.

The problem is obviously caused by the int() operator in class A,
and indeed removing this operator causes the problem to go away.

However:
1. I want to be able to do the above and believe taht I should be able
to.

2. The doco seems to indicate that what I have done is legal.

3. The same sources compiled on a Sun 4 allow the above code to compile
without hitch.

4. (if relevent) It worked under CC V2.1.

Does anyone know offhand what I have done wrong?
I would be very grateful for any leads.

Thanx ...mcf

Michael Flower
Artificial Intelligence Systems         Email:     m.flower@trl.oz.au
Telecom Research Laboratories           Voice:     +61 3 541 6179
Melbourne, AUSTRALIA                    Fax:       +61 3 543 8863
Newsgroups: comp.lang.c++
From: 48ganelin@cuavax.dnet.cua.edu
Subject: HELP: mixing const and non const function
Organization: The Catholic University of America
Date: Tue, 21 Jul 1992 22:21:15 GMT

How to solve the next problem:
 I want to declare a function to be constant though it
 uses a nonconstant function.
 (Of course it is an error for usual situation, but see example)

 Example:

class foo {
    int vector [10] ;
public:
    int& operator () (int at)  { return vector[at] ; }
};

class foo2
{
   foo f ;
   int median (void) const { return f(5); }           <----- warning
};


I got the warning

10: Non-const function foo::operator ()(int)
    called for const object in function foo2::median() const

(as it should be, of course).

I do not want to declare operator () to be constant, because I
want to use it as both rvalue and lvalue. How can I sovle this
problem:  avoid this warning?

Possible solution, which I do not like.

1. To introduce second method

    int elem (int at) const {return vector[at] ;}

to access element only as rvalue and then

    function median (void) const { return f.elem(5) ;}

What I want is to "explain" the translator, that operator () in
the right part is --const-- and in the left it is --non const--.
Is it possilbe to do? Any trick?
( Other words, f(5) and vector[5] should be absolutely the same from the
translator's point of view)

Thanks,
Pavel Ganelin.
From: gt7749b@prism.gatech.EDU (Chris M.)
Newsgroups: comp.lang.c++
Subject: Re: Bug in Borland C++ 3.1: demonstration included
Date: 22 Jul 92 17:39:26 GMT
Organization: Georgia Institute of Technology

In article <22JUL199211253387@pine.circa.ufl.edu> hans@pine.circa.ufl.edu (Hans van Oostrom) writes:
>I ran into a piece of code that will crash the Borland 3.1 compiler when
>you compile it.  It gives a General Protection Fault Exception 0D in the
>bcc and bc compilers (I haven't try the tcw one).  Try the following at home:
>
>// file showbug.cpp
>[ code deleted ]
>
>I know that this is supposed to generate an error message because the stat
>function doesn't have a prototype.  I also know that stat is defined as 
>something else in the sys\stat.h file, but since I am not using that it
>should be ok.  If you change the name of stat or include a prototype it
>works ok.  
>
>If anybody can shine some light on this I would be interested.
>I will forward this to Borland.
>


I hate to tell you this, but its not a bug in BCC/BC/ etc.

I just attemopted to compile your program in BC, and with BCC.  
Both programs spit out an error about prototypes -- I got no
exception faults.

The exception Fault (0d) has never happened to me on the machine I am on:
an AST Premium 486sx II.

However, on a 386/25, I have gotten a 0D.  Let me tell you what caused the
0D exception:

My memory chips on the 386/25 are too slow to keep up with the 25 mhz
speed of my 386.  However, running the compuyter at 20mhz got rid of any
0D errors I have gotten.  I have tested it alot (The 0D trap) -- it
seems to be egenrated when memory cannot keep up with the processor.
My memory is .. 80ns +.

Borland may or may not have a clue as to what you are talking about:
I am sure on their machines the compile will gebnerate an error,
just like it did here.  Like I said, I took your code piece, and
the compiler generated two prototyping errors  (stat() needs a 
prototype...) 

You may consider running your computer at a lower speed;  (I assume you
have at least a 286 since you are using bc 3.1).  If this silves
your problem, you will need memory chips that are faster.  If you
have a 486, you will generally need 53ns-60ns chips to avoid the
problem.

The reason that BC may fail while other programs doesn't is because
BC uses your memory intensely, and thus, pushes it to its limit.

OS/2 or Unix would more than likely fail at points on your computer
if your memory isn't fast enough to keep up with the processor.


-- 
Chris McClellen  
Just Another Student, Georgia Institute of Technology
Internet: gt7749b@prism.gatech.edu, ccastcm@prism.gatech.edu 
"Death may smell bad, but LIFE STINKS!"