From owner-freebsd-chat@FreeBSD.ORG Sat Apr 22 19:18:38 2006 Return-Path: X-Original-To: freebsd-chat@freebsd.org Delivered-To: freebsd-chat@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9057516A401 for ; Sat, 22 Apr 2006 19:18:38 +0000 (UTC) (envelope-from dugger@hotlz.com) Received: from www.hotlz.com (freedom.hotlz.com [209.20.218.52]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3AA1543D48 for ; Sat, 22 Apr 2006 19:18:38 +0000 (GMT) (envelope-from dugger@hotlz.com) Received: from [172.27.240.45] (henry.local.hotlz.com [172.27.240.45]) by www.hotlz.com (8.13.3/8.13.3) with ESMTP id k3MJGLh2025702; Sat, 22 Apr 2006 12:16:21 -0700 (PDT) (envelope-from dugger@hotlz.com) Message-ID: <444A8106.5010801@hotlz.com> Date: Sat, 22 Apr 2006 12:16:22 -0700 From: Don Dugger User-Agent: Mozilla Thunderbird 1.0.7 (Macintosh/20050923) X-Accept-Language: en-us, en MIME-Version: 1.0 To: freebsd-chat@freebsd.org References: <44490663.3040506@hotlz.com> <86d5f9pno8.fsf@xps.des.no> <444A6B54.1030902@hotlz.com> <86vet1o5j3.fsf@xps.des.no> In-Reply-To: <86vet1o5j3.fsf@xps.des.no> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= Subject: Re: Why is not more FreeBSD software written in C++? X-BeenThere: freebsd-chat@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Non technical items related to the community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2006 19:18:38 -0000 Dag-Erling Smørgrav wrote: >Don Dugger writes: > > >>Dag-Erling Smørgrav writes: >> >> >>>Don Dugger 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)