HDTenEightyP/NetNews huggingface dataset:
From: paulf@cbnewsb.cb.att.com (paul.fillinich)
Subject: Re: AT & T Class Library
Organization: AT&T
Date: Tue, 13 Oct 1992 14:35:50 GMT

In article <JARA.92Oct12142656@offertorium.fulcrum.bt.co.uk> jara@fulcrum.bt.co.uk (Jara Kandhola) writes:
>Hi,
>	Could anybody out there let me know how I can get hold of the 
>AT & T class libraries. Also any info on the cost and whether you get 
>the source code as well would be very useful. Please email any info 
>or contact details you may have.
>
>	Thank is advance - Jara
>

The AT&T Class Libraries, now known as the USL Standard Components, are 
available from UNIX System Labs.  We have offices worldwide.  In your case,
Jara, you should contact our European office in London at +44-81-567-7711.

In the US, you can call 1-800-828-8649.  In the Pacific, call our office in 
Tokyo on +81-3-5484-8605.

The cost of the libraries is $695 for single user and includes source code.
It has been ported to several platforms.  You need to ask.  Pricing is higher
for the Multi-user version - $1495.  This product can be sublicensed and
binaries sold.  There is an additional cost for this.

If you need any further information, please either call the above numbers,
or send me or Fred Cooper mail.  I am paulf@usl.com and Fred is fsc@usl.com.

Paul Fillinich
C++ Product Manager
UNIX System Laboratories
From: surendra@plsparc.UUCP (Surendra Goel)
Newsgroups: comp.lang.c++
Subject: Re: Static Initialization in DLLs?
Date: 8 Oct 92 17:34:52 GMT
Organization: Personal Library Software, Inc.

Hi,

The entry point for DLL's is LibMain(). On call to load the DLL
(explicitly or implicitly), this function is called first. You can put
all your static initializations in the this function. Similary WEP ()
is the last function called before unloading the DLL. You can free up
all the resources here. The actual prototypes for both of these
function is given in any book on windows programming.

Good Luck.




-- 
Surendra Goel (surendra@pls.com)
Personal Library Software, Inc.  2400 Research Blvd. Suite 350, Rockville, MD 20850   Phone: (301)926-1402 
Newsgroups: comp.lang.c++
From: joe@athena.mit.edu (Joseph C Wang)
Subject: Re: yacc in c++?
Organization: Massachusetts Institute of Technology
Distribution: usa
Date: Mon, 12 Oct 1992 08:24:29 GMT

There is a shell script which can be used to generate parsing classes
in c++.  Anonymous ftp export.lcs.mit.edu and download the file
/contrib/yacc.shar.Z


Newsgroups: comp.lang.c++,comp.std.c++
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: The concept of templates considered ill designed
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Fri, 9 Oct 1992 17:28:12 GMT

In article <23822@alice.att.com> ark@alice.UUCP () writes:
>In article <Yeo91je00awVE_zEkI@andrew.cmu.edu> osoelgaultier+@CMU.EDU (Stefan Monnier) writes:
>
>> What I say is just that inheritance constraint permits to check
>> the file and compile it before using it !
>
>I understand that that is what you're saying, but you haven't convinced me.
>

	Me neither, but I haven't given up on the idea that you might just
be able to compile templates.

	Consider

	template<class T> f(T *t){t->print();}

The constraint is that T must have a member function 'print()'.
Now it seems that you can compile this routine, but you
have to replace 'print' with a pointer supplied silently as a
parameter to f. The call

	f(pObject);

is checked against the constraints, if it passes this test,
f is called with the pointer pObject AND the address of
its print routine.

More general cases would require the addresses of constructors
to be passed (i'm glossing over lots of issues here).

>
>My point in giving this example is to show that statements like `constraining
>template types makes compile-time type checking possible' cannot be made
>casually -- it is the responsibility of the person making such a statement
>to provide evidence that the statement is indeed true.
>
>This stuff is **difficult**!  Don't take it lightly!
>-- 
>				--Andrew Koenig
>				  ark@europa.att.com

So I'm not making the claim it can be done, only throwing in
a suggesting of HOW it might be done. But I reject the notion
that the constraints should be named base classes, rather,
the constraints are the silent parameters mentioned
above, they are the 'functions' that the type T must
have. (Yes this is a crude description, its just an idea.
Can it be made to work, if not why not, if so what
we gain is type checked templates, we loose efficiency,
at least: what else, and is it worth it?)

BTW: the constraints of course DO form a kind of
abstract, unnamed, 'base' class that you *might* have 
derived the type T from had you thought of it.


-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
From: roberts@studguppy.lanl.gov (Doug Roberts)
Newsgroups: comp.lang.c++
Subject: Re: Public domain Class Browsers (Sniff1.6b)
Date: 16 Oct 92 22:40:08 GMT
Organization: Technology Modeling and Analysis, LANL-A7

I got Sniff and tried it out: not bad...

I couldn't help noticing, though, that there is mo provision to build
the application. The binaries worked fine (SunOS4.1.1, X11R5) but I'd
kind of like to buid it myself, you know?

--Doug
--

==================================================================
Douglas Roberts                |
Los Alamos National Laboratory | All good work is done in defiance
dzzr@lanl.gov                  |  of management. -- Bob Woodward
(505)667-4569                  |
==================================================================
From: bright@nazgul.UUCP (Walter Bright)
Newsgroups: comp.lang.c++
Subject: Re: New Zortech C++ Release?
Date: 9 Oct 92 16:38:41 GMT
Reply-To: bright@nazgul.UUCP (Walter Bright)
Organization: Zortech, Seattle

In article <1aah60INN7ob@news.aero.org> jordan@aero.org (Larry M. Jordan) writes:
/Yesterday I received a copy of "Programmer's Paradise" in the mail and noticed
/an ad for a verion of Zortech C++ for OS/2 that supports the AT&T v3.0 standard,
/including templates.  I did not find a similar ad for DOS or WINDOWS.
/I'm confused.  Did PP jump the gun?  Is a version of Zortech which supports
/templates imminent?  How much longer must I wait?  (If something doesn't happen
/soon I'll just buy a copy of Turbo C++ for Windows and be done with it.)

PP didn't jump the gun. We had a couple of bugs which has
delayed the OS/2 compiler release. The Symantec dev tools group is working
night and day to get it released.
From: hanlon@cray.com (Jim Hanlon)
Newsgroups: comp.lang.c++
Subject: Re: NIHCL C++ class library and X11's libXt both use Object
Keywords: NIHCL, X11
Date: 12 Oct 92 14:55:31 GMT
Article-I.D.: hemlock.1992Oct12.095531.9777
Followup-To: comp.lang.c++
Organization: Cray Research, Inc.
Originator: hanlon@hemlock



In article <1992Oct10.022733.24514@netcom.com> geoff@netcom.com (Geoffrey Leach) writes:

>It appears that there is an unfortunate interaction between the C++
>class library NIHCL and X11's Xt intrinsics, in that both declare "Object".
>Is there a workaround, or am I missing something?

Here is what I do to kludge around this namespace problem.


// The following #defines are a workaround to avoid the
// namespace conflicts between NIHCL and X
#define Object X11Object
#define String X11String
#define Time X11Time
#include <X11/Intrinsic.h>	// Intrinsic.h redefines String and the undef's it

#define String char*
#include <Xm/Xm.h>
#include <Xm/CascadeBG.h>
#include <Xm/DialogS.h>
	.
	.
	.
#undef Object
#undef String
#undef Time

#include <nihcl/ArrayOb.h>
#include <nihcl/Assoc.h>
#include <nihcl/Regex.h>
#include <nihcl/String.h>
#include <nihcl/Time.h>

	.
	.
	.


You may get a warning about "String redefined" in "Intrinsic.h", but other than
that the approach seems to work.

I don't see a lot of point in flaming on about C/C++'s lack of a package
facility, etc.  I just wish folks would use a little bit of sense when staking
out their namespace.  For example, the X developer's seemed to be asleep on the
day they defined 'String', 'Object', 'Cardinal', etc.  All the rest of their
thousands of names begin with a predictable 'X', 'Xaw', 'Xm', etc.  Same fault
for NIHCL (and most other class libraries that float around).  I once built NIHCL
with all the class names prefixed with 'Nih' (the way I think it should have been
done in the first place), but I've thrown it away because it is too much trouble
to maintain.  This kludge, though not elegent, does the job well enough.
-- 

-----

Jim Hanlon                                 (internet) hanlon@cray.com
From: bright@nazgul.UUCP (Walter Bright)
Newsgroups: comp.lang.c++
Subject: Re: New Zortech C++ Release?
Date: 14 Oct 92 22:39:51 GMT
Reply-To: bright@nazgul.UUCP (Walter Bright)
Organization: Zortech, Seattle

In article <1992Oct10.125825.14587@netcom.com> feustel@netcom.com (David Feustel) writes:
/bright@nazgul.UUCP (Walter Bright) writes:
/>PP didn't jump the gun. We had a couple of bugs which has
/>delayed the OS/2 compiler release. The Symantec dev tools group is working
/>night and day to get it released.
/I called Symantec about this product and was told that the initial
/product does not include a debugger.
	True, though we are working on one.
/This is why the IBM developers
/toolkit is needed to use it.
	Also for all the PM .h files, and various other goodies.
/It seems to me that $250 for an
/upgrade that consists primarily of adding the capability of linking
/32-bit code (the compiler already generated 32-bit code linkable in
/dos) is a bit much. I was really looking forward to this product, but
	We're also adding templates, precompiled headers, OS/2 2.0
	runtime libraries.
/in view of the price I'm waiting to see 
/- what IBM comes up with for an os/2 C++ compiler (and for how much)
/- ditto for Borland
/- a review of the Zortech Compiler's os/2 32-bit code generating 
/  performance. 

	It's true we've had a 32 bit compiler for years.
	Unfortunately, there are now at least 3 *different* conventions
	for 32 bit code. There is the Unix one (also used by our DOSX
	dos extender and Pharlap's), the OS/2 2.0 "flat" model and the
	Windows NT "flat" model. There is no solid technical reason why
	the OS/2 and NT models could not use the older Unix format which 
	had been around for many years. There is also no technical reason
	why the OS/2 and NT models are different from each other, they
	just are. This makes it essentially impractical to have one .LIB
	for the 3 different platforms. Sigh.

	IBM has also added their own *different* version of 32 bit CodeView
	debugging records.

	Fortunately, we are trying hard to make sure our customers never see
	or have to deal with these differences, the adjustments are all
	handled internally by the tools.

	About a year ago, PC Week did a review of Zortech's 32 bit code
	generating performance.
Newsgroups: comp.lang.c++
From: wirth@faw.uni-ulm.de (Ruediger Wirth)
Subject: inference machine embedded in C++
Followup-To: peter@fuzi.uucp
Organization: FAW (Research Institute For Applied Knowledge Processing, Ulm, Germany)
Date: Mon, 12 Oct 1992 17:19:58 GMT

I am posting this for a friend.
Please send all follow-ups to peter@fuzi.uucp
-----------------------------------------------------


WANTED: Inferecne Machine embedded in C++ class hierarchy

We need a class library in C++ with features as follows:

- abstract class Rule, methods Premise and Conclusion for overloading,
connecting referenced facts to the fact base.
-abstract class Fact, which can be combined (via multiple inheritance
or has-a relation) with data structures and data of the incorporating program.
- instantiable classes Rule-Base and Fact-Base and
- instantiable class Inference-Machine with abilities of forward and
backward chaining.

This is quite similar to the abilities of Prolog. But we don't need
any tiny Prolog written in C++ and we don't need any rule editor nor rule
generator.

We want to operate on external data of external data structures (accessible via
facts) in the incorporating program and to generate (based on rules) other data
(accessible viafacts) for data structures in the incorporating program.

We are interested in a list of vendors of such a product or other contacts
to interested developers.
     
   Thanks in advance,
         Peter Schneider
From: jbuck@forney.berkeley.edu (Joe Buck)
Newsgroups: comp.lang.c++
Subject: Re: changing a const object..
Date: 7 Oct 1992 19:55:39 GMT
Organization: U. C. Berkeley
NNTP-Posting-Host: forney.berkeley.edu
Keywords: C++, const, coplien

In article <1992Oct7.143707.19506@fwi.uva.nl> caspers@fwi.uva.nl (John Caspers) writes:
>Coplien (Advanced C++ Programming Styles & Idioms) writes the following code
>on pages 60 and 61:

[ I squished it a bit ]

class String {
  public:
    String( const String& s ) { s.rep->count++;      // ...    }
    // ...
  private:
    StringRep *rep;
};

class StringRep {
  friend String; private:
    // ...
    char *rep;
    int count;
};

The code above is perfectly valid.

>The question is: in String's copy ctor, the argument 's' is const.
>But the statement 's.rep->count++' changes the state of the StringRep
>object s.rep is pointing to...

That is correct.  For a pointer, either the pointer itself can be
constant, or the pointer can point to constant storage, or both.
That is, we could have

1.	StringRep *pointerToRep;
2.	const StringRep *pointerToConstRep;
3.	StringRep * const constPointerToRep;
4.	const StringRep * const constPointerToConstRep;

Within a const String, the pointer to the StringRep becomes type 3:
the pointer itself is const, but the StringRep pointed to is NOT const.
We have effectively put the String object, but NOT the thing pointed
to by the String object, in a ROM.  Just as ROMs can contain pointers
to RAM, so can a const object have pointers to non-const storage.

>Any comments on this? My compiler (BC++ 3.1) didn't complain about
>changing an object pointed to by a member of a const object. Should it?

Your compiler should (must!) not complain.  It is because this issue is so
widely misunderstood that you see so much "cast away const" code that the
ANSI committee seems to feel obliged to bless it.  The above technique
permits const objects to have a cache that is updated by const methods,
without casting away const.  All serious C++ programmers should understand
it thoroughly.




--
Joe Buck	jbuck@ohm.berkeley.edu
From: lwb@cs.utexas.edu (Lance W. Bledsoe)
Newsgroups: comp.lang.c++
Subject: Re: Q: How to change the byte length of type "double" in g++?
Date: 9 Oct 1992 12:36:51 -0500
Organization: U Texas Dept of Computer Sciences, Austin TX
NNTP-Posting-Host: cs.utexas.edu

In article <a74-W#-@engin.umich.edu> Tachen Ni <tcnyyf@caen.engin.umich.edu> writes:
>
>Recently I found that the default g++ (Version 1.37.1 on Unix
>machine) byte length for data type "double" (8 bytes) is not 
>enough for my project.  Is there any way that I can change it 
>to 12 bytes?  

8 bytes is a pretty standard type for "double".  Why not create
your own class to handle the larger size?

Lance

-- 
+------------------------------------------------------------------------+
|  Lance W. Bledsoe          lwb@cs.utexas.edu           (512) 258-0112  |
|  "How did the Scarecrow know he didn't have a brain?"                  |
+------------------------------------------------------------------------+
Newsgroups: comp.lang.c++
From: keck@castor.trl.OZ.AU (Brian Keck)
Subject: Re: Request for info - Software Testing Tools
Organization: Telecom Research Labs,Melbourne, Australia
Date: Fri, 9 Oct 1992 14:53:27 GMT



In comp.software-eng, scip2060@nusunix1.nus.sg (SARDJONO INSANI) asked:
	REQUEST FOR INFO - SOFTWARE TESTING TOOLS
	Could anyone please give me information on software testing tools
	commercially available, with brief comments of their functionality,
	price and address of vendors?

I have what I guess is a similar question.

What I have in mind are tools that take up where lint leaves off,
for C primarily, but also C++ & Eiffel.

I've seen the thread on Purify/dbmalloc/Sentinel, but am more interested
in programming style as it affects maintainability & other good things
(reliability, efficiency, portability, interoperability, ...).

Thanks for any help,

Brian Keck

b.keck@trl.oz.au, phone +61 3 253 6407, fax +61 3 253 6362 
Network Services & Signalling, Telecom Research Laboratories
770 Blackburn Rd, Clayton Victoria 3168, Australia
From: pickerig@dns0.bham.ac.uk (Mr. G. Pickering)
Newsgroups: comp.lang.c++
Subject: Re: streams
Date: 13 Oct 92 15:55:18 GMT
Organization: The University of Birmingham, England
X-Newsreader: TIN [version 1.1 PL6]

My first reaction is to use FILE functions rather than streams, unless
you have a good reason to use streams. This is just the way I do things,
feel free to flame me for this.

In this case you wouldn't have the problem, you would just pass the
file pointer to whichever service functions that need access to the
file.

You can still do:

  FILE* input_file;
  if (input_flag)
  {
    input_file = stdin;
  }
  else
  {
    input_file = fopen("in_file","r");
  }

  if (input != NULL)
  {
    // do some stuff
  }

Ok, so it's not C++, but I subscribe to the school of
thought that "if it works reliably...use it".  

--
Guy Pickering
Electronic Eng, University of Birmingham, Edgbaston, Birmingham. ENGLAND
G.PICKERING@uk.ac.bham  or pickering@uk.ac.bham.eee
Newsgroups: comp.lang.c++
From: krc@wam.umd.edu (Kevin R. Coombes)
Subject: Re: Proposal: Preconditions and PostConditions in C++
Organization: University of Maryland, College Park
Date: Mon, 12 Oct 1992 13:57:29 GMT

In article <23852@alice.att.com> bs@alice.att.com (Bjarne Stroustrup) writes:
>bytor@grumpy.bellcore.com (Ross Huitt @ Bellcore) writes
> > I find myself rarely, if ever, inheriting where the derived class
> > is not intended to be type compatible.
>
>Public bases are far the most common, but there are cases where private
>bases are useful.

I've asked this question before, and I'm ready to look foolish in return
for the opportunity to ask it of someone who can really supply a meaningful
answer.

What is one real example where private bases give you an advantage over
including a member object? Every time I've thought about this, it seems
to me that the private base forces the derived class to use a particular
implementation---and that is likely to cause difficulties during the
maintenance phase of a program's life.

Kevin Coombes <krc@math.umd.edu>
Newsgroups: comp.lang.c++
From: rick@mel1.geg.mot.com (Rick Rankin)
Subject: Re: GNU C++
Organization: Motorola, inc. - Scottsdale, AZ
Date: 08 Oct 92 17:53:07 GMT

In article <92281.205707IO00933@MAINE.MAINE.EDU> <IO00933@MAINE.MAINE.EDU> writes:
Path: schbbs!mothost!ftpbox!uunet!noc.near.net!mars.caps.maine.edu!maine.maine.edu!io00933
   Organization: University of Maine System
   Date: Wednesday, 7 Oct 1992 20:57:07 EDT
   From: <IO00933@MAINE.MAINE.EDU>
   Newsgroups: comp.lang.c++
   Lines: 9

   A quick question :

   Where can I get the Gnu C++?

   Your response is appreciated.

   With regards

   Michael Chen

GNU C++ and all other GNU software is available from prep.ai.mit.edu.
Look in /pub/gnu.  The current version of GNU C++ is in
gcc-2.2.2.tar.Z (C and C++ in one).  You will also want the C++
library in libg++-2.2.tar.Z

--
==============================================================================
| Rick Rankin				|				     |
| Motorola				| Voice: 602-441-5726		     |
| Government Electronics Group		| Fax: 602-441-2919		     |
| 8220 E. Roosevelt St.			| Internet: rick@mel1.geg.mot.com    |
| Scottsdale, AZ 85252			|				     |
| Mail Drop R4246			|				     |
==============================================================================
From: pete@genghis.borland.com (Pete Becker)
Newsgroups: comp.lang.c++
Subject: Re: GOTO, was: Tiny proposal for named loops.
Date: 10 Oct 92 16:48:17 GMT
Organization: Borland International
Originator: pete@genghis.borland.com

In article <1992Oct9.213200.545@mole-end.matawan.nj.us> mat@mole-end.matawan.nj.us writes:
>
>istream &
>getConfigLine(istream &in)
>{
>    // --Declarations ommitted
>	//- config line:
>	//	iLine#, iRing, iSwitchHook, iMute, "id", "fname", "m", "lname"
>
>	if( ! ( in >> iLine >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( in >> iRingSignal >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( in >> iSwitchHook >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( in >> iMute >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( i_getqstring( in szId, ID_SIZE ) >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( i_getqstring( in szFirst, NAME_SIZE ) >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( i_getqstring( in szInitial, 1 ) >> skip_comma )
>	 || peek_check( i, '\n' )
>	 || ! ( i_getqstring( in szLast, NAME_SIZE ) >> skip_nl ) )
>	{
>		in.clear(in.rdstate() | ios::badbit);
>	}
>
>	return in;
>}
>

	Seems to me that this is a job for a class:

	class QString
	{
	    char *str;
	public:
	    QString( char *target );
	    friend istream& operator >> ( istream&, QString& );
	};

	istream& operator >> ( istream& is, QString& q )
	{
	char ch;
	is >> ch;
	if( ch != '"' )
		is.clear( failbit );//sorry, no manuals handy.  This may
				    // not be correct.
	is >> q.str;
	if( is )
		{
		int len = strlen(str);
		if( str[len-1] != '"' )
			is.clear( failbit );
		else
			str[len-1] = '\0';
		}
	}

If the manipulators follow the same scheme, setting the stream state to
indicate formatting errors, then the fancy input becomes quite straightforward:

	in >> line >> skipcomma;
	in >> peek_check( '\n' ) >> ringSignal >> skip_comma;
	...
	in >> peek_check( '\n' ) >> QString( id ) >> skip_comma;
	...
	if( !in )
		// handle errors

	-- Pete
From: dag@control.lth.se (Dag Bruck)
Subject: Re: Proposal: Preconditions and PostConditions in C++
Organization: Department of Automatic Control, Lund, Sweden
Date: Wed, 7 Oct 1992 07:00:09 GMT

In <comp.lang.c++> feathers@serss0 (Michael Feathers) writes:

[Discussion of why pre- and post-conditions are useful deleted.]

>I know that proposed features are routinely vetoed if there is some other
>way of achieving the same effect using the current features of the language.

Isn't ASSERT(3) good enough?  A failed assertion will not tell you the
name of the function, but it will give you filename and linenumber.

I expect future C++ compilers to implement assertion failure by
throwing an exception.

				-- Dag