Don Dugger <[EMAIL PROTECTED]> writes: > Dag-Erling Smørgrav <[EMAIL PROTECTED]> writes: > > Don Dugger <[EMAIL PROTECTED]> writes: > > > Dag-Erling Smørgrav <[EMAIL PROTECTED]> writes: > > > > Don Dugger <[EMAIL PROTECTED]> writes: > > > > > The fact is that all your c code will compile in c++ > > > > That is wrong. To name just one example, C++ is much stricter about > > > > type casts than C is. > > > I mean the constructs. Casting will not change the functionality or > > > shouldn't. > > It does. Casting can be (and often is) used to force or avoid sign > > promotion in function arguments; for instance, isspace(ch) may produce > > incorrect results if ch is a char, so a cast to int is required. > > > > C allows any expression of pointer type to be assigned to a void *, > > and allows any expression of type void * to be assigned to any object > > pointer type. C++ does not. As a result, a typical C program which > > uses malloc() without casting the result will not compile cleanly with > > a C++ compiler. A competent C programmer will balk at adding the cast > > that C++ requires; a competent C++ programmer will correctly point out > > that a C++ program should not use malloc() anyway. > > > > There are other incompatiblities: const has different semantics in C > > and C++, namespaces aren't quite the same (there is no separation > > between the typedef namespace and the struct namespace in C++), etc. > And how does that change my point?
You claim (on the first line quoted above) that "all your c code will compile in c++". I am trying to show that you are wrong. DES -- Dag-Erling Smørgrav - [EMAIL PROTECTED] _______________________________________________ freebsd-chat@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-chat To unsubscribe, send any mail to "[EMAIL PROTECTED]"