Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Apr 2006 12:16:22 -0700
From:      Don Dugger <dugger@hotlz.com>
To:        freebsd-chat@freebsd.org
Cc:        =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>
Subject:   Re: Why is not more FreeBSD software written in C++?
Message-ID:  <444A8106.5010801@hotlz.com>
In-Reply-To: <86vet1o5j3.fsf@xps.des.no>
References:  <44490663.3040506@hotlz.com> <86d5f9pno8.fsf@xps.des.no>	<444A6B54.1030902@hotlz.com> <86vet1o5j3.fsf@xps.des.no>

next in thread | previous in thread | raw e-mail | index | archive | help
Dag-Erling Smørgrav wrote:

>Don Dugger <dugger@hotlz.com> writes:
>  
>
>>Dag-Erling Smørgrav <des@des.no> writes:
>>    
>>
>>>Don Dugger <dugger@hotlz.com> 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.
>
>DES
>  
>
And how does that change my point?

Don 8)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?444A8106.5010801>