Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!ut-sally!seismo!rochester!bullwinkle!batcomputer!gdykes From: gdykes@batcomputer.TN.CORNELL.EDU (Gene Dykes) Newsgroups: net.lang.c++ Subject: Cornell Bug Report #0 of 4 Message-ID: <498@batcomputer.TN.CORNELL.EDU> Date: Thu, 19-Jun-86 10:43:46 EDT Article-I.D.: batcompu.498 Posted: Thu Jun 19 10:43:46 1986 Date-Received: Sun, 22-Jun-86 03:06:08 EDT Reply-To: gdykes@batcomputer.UUCP (Gene Dykes) Organization: Theory Center, Cornell University, Ithaca NY Lines: 68 Here at Cornell, it appears that C++ will play a major role in the development of software that will be shared over the campus-wide network (TheoryNet). I have used it to write a menu manager, and it sure made the task easier. I love it! However... I have a few bugs to report that I don't think have been posted yet (to be sent in three separate articles), a few bugs that are probably well known (to be described at the end of this article) and a gripe or two (to be discussed now). Gripe #1: The form() function only takes 8 arguments, which is bad, and that fact is undocumented (I think), which is worse. The fix is trivial, but I did spend several hours trying to figure out why some of my output was mangled until I discovered the problem. Gripe #2: It seems that I am always needing to declare a function in one class as the friend of another class, while also needing to declare a function in the second class as a friend in the first. C++ squawks because it needs to have the class defined before it can have a function in it declared as a friend in another class. Needless to say, it is impossible to declare each class before the other. So... 1) Does this indicate lousy programming practices on my part? 2) Do lots of other people also run into this? 3) Is there a way to do this that I haven't figured out? 4) Is this something that can't be helped or is a fix on the way? - - - - - - - - - - - - Probable well-known bugs - - - - - - - - - - - - % cat bug.c #include main () { cerr << "works\n" ; } % CC bug.c -o bug CC bug.c: cc bug..c -o bug -lC cc: warning: -o ignored when -c or -S used % bug works % CC -c bug.c CC bug.c: cc -c bug..c -lC % cc bug.o -o bug -lC % bug Bus error (core dumped) - - - - - - - - - - - - - Two problems are revealed by this simple example: 1) a program cannot be compiled by CC and loaded by cc 2) the ridiculous warning that always appears during a CC load I assume these two problems are well known. If not, there must be something wrong here, and I would appreciate somebody letting me know what they are... -- Gene Dykes, 120 Rand Hall, Cornell U., Ithaca, NY 14853 (607)255-6713 {ihnp4,decvax,allegra,vax135}!cornell!batcomputer!gdykes