home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.c++
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!att-out!cbnewsh!gls
- From: gls@windmill.ATT.COM (Col. G. L. Sicherman)
- Subject: H-P C++ 3.0
- Organization: AT&T
- Date: Tue, 26 Jan 1993 20:23:52 GMT
- Message-ID: <1993Jan26.202352.24339@cbnewsh.cb.att.com>
- Sender: gls@cbnewsh.cb.att.com (Col. G. L. Sicherman)
- Lines: 34
-
- I've been using Hewlett-Packard C++ 3.0 lately. It's pleasantly strict
- about many things that version 2 was lax about. On the other hand,
- generating the -I options for template linking is a nuisance, and we've
- been bitten by a couple of unrelated bugs:
-
- 1. The standard components generously let you use version 2 of the
- List class by #including <List_old.h>. You still have to convert
- your declarations to angle brackets, but that's progress. Anyway,
- the old routines that return a copy of an element used to deal with
- "no such element" in this fashion:
-
- // if (no such element)
- // return 0;
-
- In other words, somebody programmed them to return 0, was perplexed
- when the compiler rejected it, and reluctantly commented the statement
- out.
-
- In version 3, some of these statements have been uncommented. The
- result is that you can't compile List<String> at all. You can't
- compile a list of any type with two or more constructors, unless
- one of them takes an int.
-
- 2. CC -S sometimes generates bogus assembly code. We're getting
- DS (define symbol) directives with an argument of /dev/null.
- Of course, /dev/null is not a legal name for a symbol. If we
- compile to C first and then to assembly language, there's no
- problem.
-
- We've solved problem 1 by restoring the screw marks, and problem 2 by
- compiling to C first. Does anybody have any better ideas?
- --
- Col. G. L. Sicherman
- gls@windmill.att.COM
-