[vox-tech] C - passing chars and pointer to chars
Peter Jay Salzman
p at dirac.org
Sun Jun 4 08:28:36 PDT 2006
On Sun 04 Jun 06, 9:57 AM, Ken Bloom <kbloom at gmail.com> said:
> On Sunday 04 June 2006 09:05, Peter Jay Salzman wrote:
> > On Sat 03 Jun 06, 10:27 PM, Ken Bloom <kbloom at gmail.com> said:
> > > Cue, the **Fundemental axiom of the C++ type system**, stated as
> > > follows:
> > > A* is automaitcally convertable to B* if and only if A is a B.
> > > (Likewise for pass by reference).
> > >
> > > (this is my own generalization though, and there may actually be
> > > exceptions)
>
> >
> > Although this was interesting to read, it doesn't say much other than
> > to restate my observation in a more sophisticated way.
>
> IMO, all that matters is that the axiom is the reason.
>
> --Ken
Herr Godel would say that this type of thinking is why it took humanity over
2000 years to discover non-Euclidean geometry. ;-)
BTW, "void *" seems to be an exception to the axiom:
p at satan$ cat bar.c
void f( void *b );
int main( void )
{
int a;
f( &a );
return 0;
}
p at satan$ gcc -W -Wall -c bar.c
p at satan$
A "int *" is convertable to "void *" even though an int isn't a void. There
is no data type of "void" (I think), but it's still a counter example.
BTW, you mentioned that it was a generalization of the fundamental axiom of
the C++ type system -- what is the fundamental axiom? That sounds like
something I should know, but I've never heard of it.
Pete
More information about the vox-tech
mailing list