Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connectionsPath: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Muttley@DastardlyHQ.org
Newsgroups: comp.lang.c++
Subject: Re: We have a new standard!
Date: Fri, 3 Jan 2025 10:13:51 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 65
Message-ID:
References:
<20250101182527.00004b2f@yahoo.com>
<87pll4sws5.fsf@nosuchdomain.example.com>
Injection-Date: Fri, 03 Jan 2025 11:13:52 +0100 (CET)
Injection-Info: dont-email.me; posting-host="96451c9a48325b5d1183f33759cc6cc5";
logging-data="4058372"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19x/rO7/jJ870Jwm2qZRsRD"
Cancel-Lock: sha1:VP6cTXy8LfMrpDQwh1i880tq6RI=
Bytes: 3427
On Thu, 02 Jan 2025 13:58:34 -0800
Keith Thompson wibbled:
>Muttley@DastardlyHQ.org writes:
>> On Thu, 2 Jan 2025 17:54:18 +0100
>> David Brown wibbled:
>>>On 02/01/2025 15:07, Muttley@DastardlyHQ.org wrote:
>>>> Overloading << and >> was unnecessary and confusing.
>>>
>>>Disagreed. I really don't think it was problematic. Nor did any of the
>>>/many/ people who were involved in the design of C++. Remember, the
>>>language and library has always been discussed, prototyped, and tested
>>>by lots of people before being released. Stroustrup was the main
>>>language designer, but he was far from alone.
>>
>> Committees often don't come up with optimal solutions. Using the same
>operator
>> for 2 entirely different operations unrelated in either concept or function
>> when there was no need to was illogical and perverse.
>
>Like "*" for multiplication and pointer dereferencing? Like "&" for
>bitwise "and" and address-of? Like "-" for negation and subtraction?
As you well know they derived from C and couldn't be changed. However I don't
believe using "&" for references was the best choice but at least it sort of
makes sense in context.
>> I would expect all mathematical operations to work in EXACTLY the same way
>> in an output stream.
>
>I would expect << and >> to have their usual precedence whether
>overloaded or not.
You're missing the point.
>> Eg I expect the output to be 256 here:
>>
>> std::cout << 255 + 1 << std::endl;
>
>Which it is.
No shit.
>> std::cout << 255 << 1 << std::endl;
>>
>> Thats perverse.
>
>Apparently your expectation was incorrect.
Don't be obtuse for the sake of arguing.
> std::cout << n = 42 << "\n";
>
>and it won't compile, but parentheses are an easy fix and a good idea
>anyway.
>
>How often has it really been a problem for you?
Given I do a lot of bit twiddling low level code, more than you might
expect. And its not a problem per se as it can be solved with brackets, I'm
simply saying it was a daft design decision to overload << and >> when Bjarne
could have easily created new operators at no cost. There was NO requirement
in this case to be compatible with C because streams were C++ specific
functionality.