Subject:
|
Re: Compiling the compiler
|
Newsgroups:
|
lugnet.robotics.rcx.nqc
|
Date:
|
Sat, 6 Mar 1999 02:04:37 GMT
|
Viewed:
|
2544 times
|
| |
| |
In article <dbaum-0503990136590001@max4k-2-36.chi-tcg.enteract.com>,
dbaum@spambgoneenteract.com (Dave Baum) wrote:
> In article <4.1.19990304102818.00a9bac0@mail.connect.net>, Joel Shafer
> <joel@connect.net> wrote:
>
> > delete[] outputFile;
> > nqc/nqc.cpp(433) : error C2664: 'delete' : cannot convert parameter 1 from
> > 'const char *' to 'void *'
> > - as the error message indicates outputFile is defined as const char *
> > can I just cast it to void *?
>
>
> Yes, a cast should be fine.
>
> Offhand, this may actually be a violation of constness (which means I
> should change the source) that Metrowerks and gcc are not catching. I'll
> have to check the C++ spec.
I've checked into this a little further. It comes down to something like
the following:
void foo(const char *p)
{
delete p;
}
On one hand, this is conceptually a violation of "constness" as a caller
to foo() wouldn't know that the object pointed to was actually going to be
altered (destroyed!). On the other hand, there are some cases where
implementors would need to delete const objects (consider container
classes of const objects that use copy-in/copy-out semantics).
The C++ standards committee decided to make const pointers to a delete
expression valid:
> [Note: a pointer to a const type can be the operand of a delete-
> expression; it is not necessary to cast away the constness
> (_expr.const.cast_) of the pointer expression before it is used as the
> operand of the delete-expression. ]
I'll change the code anyway since I personally think deleting const
pointers is ugly.
Dave
--
reply to: dbaum at enteract dot com
|
|
Message is in Reply To:
| | Re: Compiling the compiler
|
| (...) What file are you compiling when you get this error? I think the fix is to include "Symbol.h" before the array templates get instantiated, but it is curious that neither Metrowerks nor gcc complain. (...) Yes, a cast should be fine. Offhand, (...) (26 years ago, 5-Mar-99, to lugnet.robotics.rcx.nqc)
|
5 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|