From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,ab1d177a5a26577d X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news2.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!transit3.readnews.com!news-out.readnews.com!postnews7.readnews.com!not-for-mail Date: Wed, 16 Feb 2011 12:58:48 -0500 From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: What's wrong with C++? References: <1ee1a434-4048-48f6-9f5e-d8126bebb808@r19g2000prm.googlegroups.com> In-Reply-To: <1ee1a434-4048-48f6-9f5e-d8126bebb808@r19g2000prm.googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <4d5c105a$0$32660$882e7ee2@usenet-news.net> NNTP-Posting-Host: cfff5798.usenet-news.net X-Trace: DXC=W^U_2n6Uhi]Ucd>=2JS:0QQFZ3T]GPM]WmX0AG3X_jU_9a\b9C12SCZVjKk:Lk^BNQcR12TN^Bg7^038Mi79NN7_1j[087Qo_KQ X-Complaints-To: abuse@usenet-news.net Xref: g2news1.google.com comp.lang.ada:17301 Date: 2011-02-16T12:58:48-05:00 List-Id: On 2/16/2011 12:37 PM, KK6GM wrote: > This is a serious question, seeking objective information. Don't you think it would be better to ask in a C++ newsgroup? But to start the ball rolling, I'd say the worst problem is its syntax. Since its standard library uses templates extensively, code can become littered with very difficult to read types. (This is being addressed in the next revision of the standard.) There are also actual syntactic ambiguities where a construct can be parsed in two ways and the correct one can be chosen only by fiat from the standard. E.g., in the following, what is the type of X? struct s { s(int) { } }; extern double d; int main() { s X(int(d)); } A second problem is that C++ leaves the order of evaluation of subexpressions in an expression undefined, unlike Java. A third is that it has no standard support for concurrent programming, so such work must be done in an implementation-defined and non-portable manner.