Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Niuce C++14-feature

162 views
Skip to first unread message

Bonita Montero

unread,
May 16, 2021, 12:10:56 PM5/16/21
to
https://www.fluentcpp.com/2017/06/09/search-set-another-type-key/
I'm asking myself whether is_transparent is actually necessary.
The additional lookup-overloads could be generally activated and
there would be an error if ther wouldn't be a proper calling-ope-
rator for a certain key-type.

Öö Tiib

unread,
May 16, 2021, 1:54:53 PM5/16/21
to
Note that extremely dynamic containers like std::[multi]set,
std::[multi]map and std::list are used in real applications only in
less performance-critical places that tend to be less tested
places and more easily breaking places.So is_transparent was
most likely for not to add silently changed behavior to those
places.

Pre-C++14 code most often has implicit conversion from
value to key object to achieve perceived transparency. So value we
want to search does convert into one "probe object" of Key type
and that is used for searching using
operator()(Key const&, Key const&) of Compare.
Now user has to indicate that he wants other operator()
overloads in Compare to be used instead, otherwise the change
can surprise break our code silently.

Bonita Montero

unread,
May 16, 2021, 2:01:58 PM5/16/21
to
> Pre-C++14 code most often has implicit conversion from
> value to key object to achieve perceived transparency.
> So value we want to search does convert into one "probe
> object" of Key type and that is used for searching using
> operator()(Key const&, Key const&) of Compare.
> Now user has to indicate that he wants other operator()
> overloads in Compare to be used instead, otherwise the
> change can surprise break our code silently.

How could is_transparent prevent that ? If there's a conversion
-operator for the key-type different from the native key of the
map to the native-key, that conversion is done before any lookup
functions are called.

Öö Tiib

unread,
May 16, 2021, 2:29:24 PM5/16/21
to
Compare is injected to std::set compile time, if it has
is_transparent member is also evaluated compile time and
based to that is decided what members the set has. So
when there are template overloads that match better then
conversion is not done but instead the template is
called that calls the other operator() of Compare. But if the
is_transparent was missing then the template members of
set are also missing so it behaves like it did before.

MrSpo...@tad.gov.uk

unread,
May 17, 2021, 3:42:49 AM5/17/21
to
Another solution looking for a problem and (as usual with C++) an ugly
hack to make it work. What a surprise. Not.

Bonita Montero

unread,
May 17, 2021, 4:45:21 AM5/17/21
to
> Compare is injected to std::set compile time, if it has
> is_transparent member is also evaluated compile time and
> based to that is decided what members the set has.

But why is this actually necessary ? operator [] could
forward any parameter for comparison to the ()-operator.

MrSpook_...@8lfoe01ih4ebku.com

unread,
May 17, 2021, 5:26:21 AM5/17/21
to
Or you could just iterate through the set and do the comparison
manually. 1 line of code.

Bonita Montero

unread,
May 17, 2021, 6:52:42 AM5/17/21
to
>>> Compare is injected to std::set compile time, if it has
>>> is_transparent member is also evaluated compile time and
>>> based to that is decided what members the set has.

>> But why is this actually necessary ? operator [] could
>> forward any parameter for comparison to the ()-operator.

> Or you could just iterate through the set and do the comparison
> manually. 1 line of code.

That's not related to what I said and not even a joke.

Juha Nieminen

unread,
May 17, 2021, 6:58:43 AM5/17/21
to
MrSpo...@tad.gov.uk wrote:
> Another solution looking for a problem and (as usual with C++) an ugly
> hack to make it work. What a surprise. Not.

Are you in the habit of going to the forums of different kinds of topics,
like programming languages, and acting like an asshole?

If you don't like the language, then don't use it. It's that simple.
You can just go and fuck off. Go wank to whatever other language you think
is so much better.

Bonita Montero

unread,
May 17, 2021, 7:28:49 AM5/17/21
to
> Another solution looking for a problem and (as usual with C++)
> an ugly hack to make it work. What a surprise. Not.

Tell me why this is a hack.

MrSpook_...@3ifr32ivepk32ia.org

unread,
May 17, 2021, 7:29:20 AM5/17/21
to
No its not a joke, its a fact. If you want to find something in std::set
thats not based on the value used for sorting then just iterate, there's
no need for yet another hack added to the language to do it.

MrSpook_v...@d16tgqd.co.uk

unread,
May 17, 2021, 7:32:25 AM5/17/21
to
_____
|| ||
|\___/|
| |
| |
| |
| |
| |
| |
_____|<--->|_____
/ | | \
____| | | |_
/ | | | | \
| | | | | |
| | | | | |
| | |
| | |
| /
| /
\ /
\ /
| |
| |

MrSpo...@bxos5xe28b1i1n7kh.ac.uk

unread,
May 17, 2021, 7:35:04 AM5/17/21
to
using is_transparent = void;

Is a hack. What's it for? If the compiler can handle multitype lookups
using find() then it should just handle them, not require some bizarre compiler
switch embedded in code.

Bonita Montero

unread,
May 17, 2021, 7:41:38 AM5/17/21
to
> Is a hack. What's it for? If the compiler can handle multitype lookups
> using find() then it should just handle them, not require some bizarre
> compiler switch embedded in code.

Of course it can, but there must be some sense in this.
That's what I asked for. But as you also can see the
sense in this keep quiet. C++ has been carefully designed.

Bonita Montero

unread,
May 17, 2021, 7:42:37 AM5/17/21
to
> No its not a joke, its a fact. If you want to find something in std::set
> thats not based on the value used for sorting then just iterate, there's
> no need for yet another hack added to the language to do it.

Ok, you absolutely don't have any clue about the sense of this
feature. So keep quiet.

Juha Nieminen

unread,
May 17, 2021, 8:04:09 AM5/17/21
to
If you act like an asshole, then expect to be treated like an asshole,
fucking asshole.

MrSpoo...@x057vr3tuoe9s_ht3c.net

unread,
May 17, 2021, 9:19:00 AM5/17/21
to
On Mon, 17 May 2021 12:03:51 +0000 (UTC)
Its spelt arsehole except in the american dialect since they can't tell
the difference between their backsides and a type of donkey.


MrSpook_...@x1_pxvs4h8sxxi.gov.uk

unread,
May 17, 2021, 9:29:56 AM5/17/21
to
ROTFL! :)

Yeah, right! Thats why we have:

- "= 0" nonsense for pure virtuals, t
- idiotic reuse of various prior keywords and operators just to cause confusion
such as "class" for templates until they finally saw sense and brought in
"typename" and implicit precedence insanities such as cout << 1 << 2;
- duplicate functionality instead of extending, eg using vs typedef
- context sensitive grammar, eg blah(123) could be an object definition or a
function call
- static members have to be initialised outside of the class definition for
[reasons] but static const? Go right ahead.

Those are off the top of my head, there are loads of others.

MrSpo...@bw3y07so7dr3go2x.tv

unread,
May 17, 2021, 9:32:00 AM5/17/21
to
I'm sure the feature has its uses for people too lazy to write (for auto&..)
, I'm talking about the hack needed to compile it.

Juha Nieminen

unread,
May 17, 2021, 10:02:32 AM5/17/21
to
MrSpook_gT9q@x057vr3tuoe9s_ht3c.net wrote:
>>If you act like an asshole, then expect to be treated like an asshole,
>>fucking asshole.
>
> Its spelt arsehole except in the american dialect since they can't tell
> the difference between their backsides and a type of donkey.

Just go wank whatever language you think is better, asshole.

Juha Nieminen

unread,
May 17, 2021, 10:03:22 AM5/17/21
to
MrSpook_b89m0or3@x1_pxvs4h8sxxi.gov.uk wrote:
> ROTFL! :)

Why don't you go troll some other forum, asshole?
Just fuck off.

Bonita Montero

unread,
May 17, 2021, 10:07:05 AM5/17/21
to
> - "= 0" nonsense for pure virtuals, t

In most OOP-languages you've to declare pure virtual functions.

> - idiotic reuse of various prior keywords and operators just to cause confusion
> such as "class" for templates until they finally saw sense and brought in
> "typename" and implicit precedence insanities such as cout << 1 << 2;

Minor cosmetics ...

> - duplicate functionality instead of extending, eg using vs typedef

That's not a problem.

> - context sensitive grammar, eg blah(123) could be an object definition or a
> function call

That's not a problem.

> - static members have to be initialised outside of the class definition for
> [reasons] but static const? Go right ahead.

You can declare them as inline so you won't need a declaration in
a .cpp-file.

MrSpook_...@g403t8gw2b59awtit.tv

unread,
May 17, 2021, 10:54:54 AM5/17/21
to
Oh dear, is it your time of the month buttercup? :)

MrSpoo...@yr_8g_4nz.com

unread,
May 17, 2021, 10:55:52 AM5/17/21
to
Awwww....

_.~._
,~'.~@~.`~.
/ : _..._ : \
{ :,"''\\`".: }
`C) 9 _ 9 (--.._,-"""-.__
( )(@)( ) `.
`-.___.-' \
,' \ / ,` ;`-._,-.
,' ,'/ ,' `---t.,-. \_
,--.,',' ,'----.__\ _( \----'
'///,`,--.,' `-.__.--' `. )
'///,' `-`

MrSpook_t...@d3zd4ilmme.gov

unread,
May 17, 2021, 10:57:05 AM5/17/21
to
On Mon, 17 May 2021 16:06:48 +0200
Bonita Montero <Bonita....@gmail.com> wrote:
>> - "= 0" nonsense for pure virtuals, t
>
>In most OOP-languages you've to declare pure virtual functions.

I'm talking about the syntax , not the concept. Wtf is "= 0"? Its an ugly
syntactic hack. They already created the new keyword "virtual" so why didn't
they create another one called "pure"?

>> - idiotic reuse of various prior keywords and operators just to cause
>confusion
>> such as "class" for templates until they finally saw sense and brought in
>> "typename" and implicit precedence insanities such as cout << 1 << 2;
>
>Minor cosmetics ...

Syntax matters.

>
>> - duplicate functionality instead of extending, eg using vs typedef
>
>That's not a problem.

Syntax matters.

>
>> - context sensitive grammar, eg blah(123) could be an object definition or a
>> function call
>
>That's not a problem.

Syntax matters.

>
>> - static members have to be initialised outside of the class definition for
>> [reasons] but static const? Go right ahead.
>
>You can declare them as inline so you won't need a declaration in
>a .cpp-file.

Oh FFS.

Bonita Montero

unread,
May 17, 2021, 11:21:05 AM5/17/21
to
> I'm talking about the syntax , not the concept. Wtf is "= 0"? Its an ugly
> syntactic hack. They already created the new keyword "virtual" so why didn't
> they create another one called "pure"?

That's not my fault that you don't understand pure-virtual functions.

>
>>> - idiotic reuse of various prior keywords and operators just to cause
>> confusion
>>> such as "class" for templates until they finally saw sense and brought in
>>> "typename" and implicit precedence insanities such as cout << 1 << 2;
>> Minor cosmetics ...

> Syntax matters.

Name me the troubles a programmer could run into because of this.

>>> - duplicate functionality instead of extending, eg using vs typedef

>> That's not a problem.

> Syntax matters.

Name me the troubles a programmer could run into because of this.

>>> - context sensitive grammar, eg blah(123) could be an object definition or a
>>> function call

>> That's not a problem.

> Syntax matters.

Name me the troubles a programmer could run into because of this.

>>> - static members have to be initialised outside of the class definition for
>>> [reasons] but static const? Go right ahead.

>> You can declare them as inline so you won't need a declaration in
>> a .cpp-file.

> Oh FFS.

There's a one-definition-rule which is inherited from C.
This rule applies also to some other languages.
But that's a perfect solution for this tiny problem.

MrSpook...@kq9.ac.uk

unread,
May 17, 2021, 11:53:51 AM5/17/21
to
On Mon, 17 May 2021 17:20:48 +0200
Bonita Montero <Bonita....@gmail.com> wrote:
>> I'm talking about the syntax , not the concept. Wtf is "= 0"? Its an ugly
>> syntactic hack. They already created the new keyword "virtual" so why didn't
>> they create another one called "pure"?
>
>That's not my fault that you don't understand pure-virtual functions.

Its not my fault you don't even appear to understand what I'm saying.
Which do you think is cleaner:

virtual func() = 0;

or

pure virtual func();

?

>> Syntax matters.
>
>Name me the troubles a programmer could run into because of this.

The only difference between most declarative programming languages is the
syntax. Is there anything C++ can do that C or assembler can't? No. The reason
it exists is to make life easier. Having moronic syntax has the opposite effect.

>>> You can declare them as inline so you won't need a declaration in
>>> a .cpp-file.
>
>> Oh FFS.
>
>There's a one-definition-rule which is inherited from C.

That rule could be enhanced. There is no good reason for this not to be
legal syntax:

class myclass
{
static int i = 123;
};

>But that's a perfect solution for this tiny problem.

All these "tiny" problems add up.


Bonita Montero

unread,
May 17, 2021, 11:58:33 AM5/17/21
to
> Which do you think is cleaner:
> virtual func() = 0;
> or
> pure virtual func();

It's the same for me but not for compulsive personalities.

>>> Syntax matters.

>> Name me the troubles a programmer could run into because of this.

> The only difference between most declarative programming languages is the
> syntax. Is there anything C++ can do that C or assembler can't? No. The reason
> it exists is to make life easier. Having moronic syntax has the opposite effect.

That's not a practical reason.

>>>> You can declare them as inline so you won't need a declaration in
>>>> a .cpp-file.

>>> Oh FFS.

>> There's a one-definition-rule which is inherited from C.
> That rule could be enhanced. There is no good reason for this not to be
> legal syntax:
>
> class myclass
> {
> static int i = 123;
> };

There is a good reason because there's only one definition of i.

>> But that's a perfect solution for this tiny problem.

> All these "tiny" problems add up.

No, they stand side by side.

MrSpoo...@ihwz2zmflqtcalb.gov.uk

unread,
May 17, 2021, 12:06:29 PM5/17/21
to
On Mon, 17 May 2021 17:58:16 +0200
Bonita Montero <Bonita....@gmail.com> wrote:
>> Which do you think is cleaner:
>> virtual func() = 0;
>> or
>> pure virtual func();
>
>It's the same for me but not for compulsive personalities.

Oh ok. Well why use words at all then? Why not have something like

@@func() = 0;

C++ could end up like the explosion in an ascii factory that is objective-C.

>> The only difference between most declarative programming languages is the
>> syntax. Is there anything C++ can do that C or assembler can't? No. The
>reason
>> it exists is to make life easier. Having moronic syntax has the opposite
>effect.
>
>That's not a practical reason.

A stupid response.

>> That rule could be enhanced. There is no good reason for this not to be
>> legal syntax:
>>
>> class myclass
>> {
>> static int i = 123;
>> };
>
>There is a good reason because there's only one definition of i.

Ok, you don't understand the concept of initialisation. Thanks for clearing
that up.

>> All these "tiny" problems add up.
>
>No, they stand side by side.

And with attitudes like that C++ will continue to be shunned by new
generations of programmers.

Bonita Montero

unread,
May 17, 2021, 12:22:03 PM5/17/21
to
>>> Which do you think is cleaner:
>>> virtual func() = 0;
>>> or
>>> pure virtual func();

>> It's the same for me but not for compulsive personalities.

> Oh ok. Well why use words at all then? Why not have something like
> @@func() = 0;

That's a matter of habituation.

>>> The only difference between most declarative programming languages is the
>>> syntax. Is there anything C++ can do that C or assembler can't? No. The
>> reason
>>> it exists is to make life easier. Having moronic syntax has the opposite
>> effect.

>> That's not a practical reason.

> A stupid response.

No, I asked for practical reasons and not metaphors.

>>> That rule could be enhanced. There is no good reason for this not to be
>>> legal syntax:
>>>
>>> class myclass
>>> {
>>> static int i = 123;
>>> };

>> There is a good reason because there's only one definition of i.

> Ok, you don't understand the concept of initialisation. Thanks for clearing
> that up.

There is a good reason for this to be not legal: the one-definition
-rule. If you want it the way which is up to your taste define the
variable inline and compile the code with C++17.

>>> All these "tiny" problems add up.

>> No, they stand side by side.

> And with attitudes like that C++ will continue to be shunned by new
> generations of programmers.

You didn't name any real problems which coudn't be solved in a blink
of an eye.

Juha Nieminen

unread,
May 17, 2021, 12:37:12 PM5/17/21
to
Why don't you go fuck yourself, asshole?

Juha Nieminen

unread,
May 17, 2021, 12:37:33 PM5/17/21
to
Why don't you just go fuck yourself, asshole?

Juha Nieminen

unread,
May 17, 2021, 12:38:20 PM5/17/21
to
Bonita Montero <Bonita....@gmail.com> wrote:
>> A stupid response.
>
> No, I asked for practical reasons and not metaphors.

Why do you even bother talking to the asshole?

Keith Thompson

unread,
May 17, 2021, 1:38:05 PM5/17/21
to
Juha, I've just added "MrSpook" to my killfile. I'm seriously
considering adding you as well. Please knock it off.

--
Keith Thompson (The_Other_Keith) Keith.S.T...@gmail.com
Working, but not speaking, for Philips Healthcare
void Void(void) { Void(); } /* The recursive call of the void */

Öö Tiib

unread,
May 17, 2021, 10:53:55 PM5/17/21
to
On Monday, 17 May 2021 at 11:45:21 UTC+3, Bonita Montero wrote:
> > Compare is injected to std::set compile time, if it has
> > is_transparent member is also evaluated compile time and
> > based to that is decided what members the set has.
> But why is this actually necessary ? operator [] could
> forward any parameter for comparison to the ()-operator.

I do not understand what you ask ... std::set does not have
operator [] AFAIK.

Bonita Montero

unread,
May 17, 2021, 11:39:41 PM5/17/21
to
> I do not understand what you ask ... std::set does not have
> operator [] AFAIK.

I'm asking for associative containers.

Öö Tiib

unread,
May 18, 2021, 1:34:06 AM5/18/21
to
Give some hint about topic change as you started by citing article
"How to search a C++ set with another type than its key" and
then replied to my explanation that did talk nothing about maps :
> Compare is injected to std::set compile time, if it has
> is_transparent member is also evaluated compile time and
> based to that is decided what members the set has.

The map::operator[] does not have template
versions regardless of is_transparent for obvious reasons
and unordered_map does not have any support to
transparency yet.

Juha Nieminen

unread,
May 18, 2021, 2:47:55 AM5/18/21
to
Keith Thompson <Keith.S.T...@gmail.com> wrote:
> Juha, I've just added "MrSpook" to my killfile. I'm seriously
> considering adding you as well. Please knock it off.

I have been using Usenet since about 1995, and to this day I seriously
cannot understand the motivation for killfiles. I'm being completely
serious here. What exactly do you gain from them?

Even when you add people to your killfile you are going to see their
posts anyway, because people respond to them and quote them. It will
break threads and make them disjointed. You are most probably going to
ignore such threads anyway, so what's the point in the killfile?

This especially so nowadays, when Usenet is almost dead. Perhaps back
in the day when a Usenet group like this one got literally thousands
and thousands of posts every day, maybe the killfile would reduce the
amount of posts somewhat, by hiding the posts of certain individuals.
Nowadays, however, Usenet is almost completely dead, and even the still
most popular groups get maybe half a dozen posts per day... on busy days.

What would you gain from adding eg. me to your killfile? I'm asking
seriously. You want to hide all of my posts from your view because I threw
insults at someone in one single random thread? Why? What exactly do you
gain from this?

MrSpoo...@5x9.edu

unread,
May 18, 2021, 3:27:33 AM5/18/21
to
On Mon, 17 May 2021 16:37:18 +0000 (UTC)
Juha Nieminen <nos...@thanks.invalid> wrote:
>MrSpook_cOJ9@yr_8g_4nz.com wrote:
>> On Mon, 17 May 2021 14:03:04 +0000 (UTC)
>> Juha Nieminen <nos...@thanks.invalid> wrote:
>>>MrSpook_b89m0or3@x1_pxvs4h8sxxi.gov.uk wrote:
>>>> ROTFL! :)
>>>
>>>Why don't you go troll some other forum, asshole?
>>>Just fuck off.
>>
>> Awwww....
>>
>> _.~._
>> ,~'.~@~.`~.
>> / : _..._ : \
>> { :,"''\\`".: }
>> `C) 9 _ 9 (--.._,-"""-.__
>> ( )(@)( ) `.
>> `-.___.-' \
>> ,' \ / ,` ;`-._,-.
>> ,' ,'/ ,' `---t.,-. \_
>> ,--.,',' ,'----.__\ _( \----'
>> '///,`,--.,' `-.__.--' `. )
>> '///,' `-`
>>
>
>Why don't you just go fuck yourself, asshole?

LOL :) Looks like the swearbot is stuck on auto repeat!

MrSpook_w...@47j.ac.uk

unread,
May 18, 2021, 3:31:13 AM5/18/21
to
On Tue, 18 May 2021 06:47:37 +0000 (UTC)
Juha Nieminen <nos...@thanks.invalid> wrote:
>Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> Juha, I've just added "MrSpook" to my killfile. I'm seriously
>> considering adding you as well. Please knock it off.
>What would you gain from adding eg. me to your killfile? I'm asking
>seriously. You want to hide all of my posts from your view because I threw
>insults at someone in one single random thread? Why? What exactly do you
>gain from this?

Wow, talk about a total lack of self awareness. You decided to pick a fight
just because I criticised an aspect of C++ and now you're whining because
someone got sick of your potty mouth? Pathetic.

Juha Nieminen

unread,
May 18, 2021, 6:32:00 AM5/18/21
to
MrSpook_w...@47j.ac.uk wrote:
> Wow, talk about a total lack of self awareness. You decided to pick a fight
> just because I criticised an aspect of C++ and now you're whining because
> someone got sick of your potty mouth? Pathetic.

Just fuck off, asshole. As an asshole, you can't spout anything but shit.

Ben Bacarisse

unread,
May 18, 2021, 8:08:58 AM5/18/21
to
Juha Nieminen <nos...@thanks.invalid> writes:

> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> Juha, I've just added "MrSpook" to my killfile. I'm seriously
>> considering adding you as well. Please knock it off.
>
> I have been using Usenet since about 1995, and to this day I seriously
> cannot understand the motivation for killfiles. I'm being completely
> serious here. What exactly do you gain from them?

I use GNUS (I think Keith does too) and while it has a kill file, it
also has a flexible scoring system. The score can be based on all sorts
of criteria like who the poster is, the number of cross-postings, the
thread it's in, who it is in reply to and so on. I can then have
low-scoring posts marked as read, greyed-out but still shown in the
thread tree. I can see at a glance, when opening a group, if it's all
troll posts and replies to such.

> Even when you add people to your killfile you are going to see their
> posts anyway, because people respond to them and quote them.

GNUS can even score based on quoted material, but that's a bit more
costly. You can always score down people who quote troll posts, and if
you pick a score that requires another factor to make the post "vanish"
you will still see the quoter's posts in other contexts.

> It will
> break threads and make them disjointed. You are most probably going to
> ignore such threads anyway, so what's the point in the killfile?
>
> This especially so nowadays, when Usenet is almost dead. Perhaps back
> in the day when a Usenet group like this one got literally thousands
> and thousands of posts every day, maybe the killfile would reduce the
> amount of posts somewhat, by hiding the posts of certain individuals.
> Nowadays, however, Usenet is almost completely dead, and even the still
> most popular groups get maybe half a dozen posts per day... on busy
> days.

This is true. GNUS was super efficient in those days. It still let's
me read news fast, but the major advantage is dwindling.

--
Ben.

Manfred

unread,
May 18, 2021, 11:10:27 AM5/18/21
to
On 5/18/2021 8:47 AM, Juha Nieminen wrote:
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> Juha, I've just added "MrSpook" to my killfile. I'm seriously
>> considering adding you as well. Please knock it off.
>
> I have been using Usenet since about 1995, and to this day I seriously
> cannot understand the motivation for killfiles. I'm being completely
> serious here. What exactly do you gain from them?

Killfiles are vital to Usenet. The main reason it is almost dead today
is because of compulsive trolls flooding this space with their nonsense.
The strongest feature of Usenet is freedom, but from the perspective of
such trolls it is its deepest weakness.
Killfiles, especially the good ones, are a sensible defense against that
- they are what keeps what's left of Usenet alive, literally.

>
> Even when you add people to your killfile you are going to see their
> posts anyway, because people respond to them and quote them. It will
> break threads and make them disjointed. You are most probably going to
> ignore such threads anyway, so what's the point in the killfile?

Good killfiles are able to follow threads and kill replies too - the
main defect I see today is with google groups (again) because it manages
a.o. to disrupt thread continuity, but luckily a lot of threads get
handled properly.

>
> This especially so nowadays, when Usenet is almost dead. Perhaps back
> in the day when a Usenet group like this one got literally thousands
> and thousands of posts every day, maybe the killfile would reduce the
> amount of posts somewhat, by hiding the posts of certain individuals.
> Nowadays, however, Usenet is almost completely dead, and even the still
> most popular groups get maybe half a dozen posts per day... on busy days.

Even if it is (unfortunately) almost dead, why push the trend?

>
> What would you gain from adding eg. me to your killfile? I'm asking
> seriously. You want to hide all of my posts from your view because I threw
> insults at someone in one single random thread? Why? What exactly do you
> gain from this?
>

Not you specifically, since this is probably one of the first
occurrences, but in general it is about reducing noise, obviously
disturbing noise.

MrSpook...@rq6ypc_knzvwr9.ac.uk

unread,
May 18, 2021, 11:12:14 AM5/18/21
to
Are you having some kind of mental breakdown?

Manfred

unread,
May 18, 2021, 11:20:29 AM5/18/21
to
On 5/17/2021 4:56 PM, MrSpook_t...@d3zd4ilmme.gov wrote:
> On Mon, 17 May 2021 16:06:48 +0200
> Bonita Montero <Bonita....@gmail.com> wrote:
>>> - "= 0" nonsense for pure virtuals, t
>>
>> In most OOP-languages you've to declare pure virtual functions.
>
> I'm talking about the syntax , not the concept. Wtf is "= 0"? Its an ugly
> syntactic hack. They already created the new keyword "virtual" so why didn't
> they create another one called "pure"?

This was indeed somewhat weird of a choice. I used to have a sense that
it was meant to be somehow expanded to other uses where the '0' would be
replaced with something else. But this never turned out to be the case,
at least in standard C++.

I seem to remember that the Borland C++ compiler would allow some
extension like

virtual LRESULT OnPaint(...) = WM_PAINT;

Which sounds appealing, but in fact it fades away in very old memories -
maybe someone else may recall anything more clear about that, if this
was indeed a thing at all.

MrSpoo...@jq7cn18h8lm.com

unread,
May 18, 2021, 11:35:42 AM5/18/21
to
I remember that anything other than zero would crash a number of older versions
of the solaris compiler back in 00s.

Bonita Montero

unread,
May 18, 2021, 11:56:18 AM5/18/21
to
> This was indeed somewhat weird of a choice. ...

For me that's syntactically expressive enough to be noticed.

> I seem to remember that the Borland C++ compiler would allow some
> extension like
> virtual LRESULT OnPaint(...) = WM_PAINT;

Who programs Win32 directly today ?
Even with MFC you've got message-maps.

James Kuyper

unread,
May 18, 2021, 11:57:07 AM5/18/21
to
On 5/18/21 2:47 AM, Juha Nieminen wrote:
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> Juha, I've just added "MrSpook" to my killfile. I'm seriously
>> considering adding you as well. Please knock it off.
>
> I have been using Usenet since about 1995, and to this day I seriously
> cannot understand the motivation for killfiles. I'm being completely
> serious here. What exactly do you gain from them?
>
> Even when you add people to your killfile you are going to see their
> posts anyway, because people respond to them and quote them. ...

True, but you'll see fewer of them. In many cases, I'll miss most or
even all of an entire conversation because I have everyone participating
in it in my killfile.

> ... It will
> break threads and make them disjointed. ...

If I see a broken thread, the simple fact that it's broken suggests that
one of the participants is in my killfile, making its somewhat easier to
quickly identify the thread as one to be ignored. In particular, I
occasionally have trouble remembering some people who have been in my
killfile for a long time, but I'm still protected from them, because my
newsreader has more reliable memory than I do.

> ... You are most probably going to
> ignore such threads anyway, so what's the point in the killfile?
>
> This especially so nowadays, when Usenet is almost dead. Perhaps back
> in the day when a Usenet group like this one got literally thousands
> and thousands of posts every day,

Back in August 2011, when Google was still providing statistics about
newsgroup participation, I responded to a message claiming that
comp.lang.c was dead:

[I wrote:]
> According to Google Groups:
> <https://groups.google.com/group/comp.lang.c/about?hl=en>
> this group hit a peak of 7444 messages per month in October 1997, and
> has slowly but erratically gone downhill since then. Key point:
> "slowly". As recently as June, there were 2069 messages posted in a
> single month. Don't pay too much attention to the July and August
> numbers; something has been going wrong with Google Groups for the past
> several weeks.

I can't check to verify this anymore, but I seem to recall that
comp.lang.c++ generally had somewhat lower message counts than
comp.lang.c, so I don't think it has ever been as high as "thousands per
day". Those kinds of numbers only happened for newsgroups catering to
large and active fan groups. For example, I remember seeing huge counts
in 2001 for alt.tv.buffy-v-slayer.

[Juha wrote:]
> What would you gain from adding eg. me to your killfile? I'm asking
> seriously. You want to hide all of my posts from your view because I threw
> insults at someone in one single random thread? Why? What exactly do you
> gain from this?

I can't speak for Keith, but I doubt that he's responding to just this
recent series of messages. I have noticed a tendency for you to get into
uninteresting insult matches with people who, admittedly, deserve the
insults - but I'm not interested in seeing those insults. If Keith
decides to put you in his killfile, he'll spend less time reading those
insults, and I wouldn't be surprised if that's what he hopes to gain
from doing that.

Bonita Montero

unread,
May 18, 2021, 11:57:48 AM5/18/21
to
> I remember that anything other than zero would crash a number
> of older versions of the solaris compiler back in 00s.

The numer isn't parsed as a number, but just a "= 0"-token,
so you're lying.

Manfred

unread,
May 18, 2021, 2:03:24 PM5/18/21
to
The point is about the syntax, not Windows programming. That is, again,
if my memory doesn't fail me. It's getting close to being 30 years ago.

Still, the capability of indexing into a vtable...

Chris M. Thomasson

unread,
May 18, 2021, 6:14:38 PM5/18/21
to
On 5/16/2021 9:10 AM, Bonita Montero wrote:
> https://www.fluentcpp.com/2017/06/09/search-set-another-type-key/
> I'm asking myself whether is_transparent is actually necessary.
> The additional lookup-overloads could be generally activated and
> there would be an error if ther wouldn't be a proper calling-ope-
> rator for a certain key-type.
>

I have never used is_transparent before, so I coded something up for
myself. It does seem to be fairly useful.

Keith Thompson

unread,
May 18, 2021, 7:57:00 PM5/18/21
to
What I gain is not seeing any more of your posts, with a resulting
improvement in the signal-to-noise ratio of my view of the newsgroup.

Another possible gain is that I let you know that your behavior is
unacceptable. Repeatedly insulting a troll just adds useless noise.

The cost, of course, is that I won't see any useful articles that you
post. That's a price I'm willing to pay.

Keith Thompson

unread,
May 18, 2021, 7:57:44 PM5/18/21
to
As promised, PLONK.

Juha Nieminen

unread,
May 19, 2021, 12:54:03 AM5/19/21
to
Keith Thompson <Keith.S.T...@gmail.com> wrote:
> Juha Nieminen <nos...@thanks.invalid> writes:
>> MrSpook_w...@47j.ac.uk wrote:
>>> Wow, talk about a total lack of self awareness. You decided to pick a fight
>>> just because I criticised an aspect of C++ and now you're whining because
>>> someone got sick of your potty mouth? Pathetic.
>>
>> Just fuck off, asshole. As an asshole, you can't spout anything but shit.
>
> As promised, PLONK.

Yeah, seriously, I honestly cannot understand why. What is it to be gained
from it? Usenet is almost dead already, so adding people to a killfile is
only making it deader.

Juha Nieminen

unread,
May 19, 2021, 1:02:19 AM5/19/21
to
Keith Thompson <Keith.S.T...@gmail.com> wrote:
> What I gain is not seeing any more of your posts, with a resulting
> improvement in the signal-to-noise ratio of my view of the newsgroup.

Of an almost dead newsgroup at that.

> Another possible gain is that I let you know that your behavior is
> unacceptable. Repeatedly insulting a troll just adds useless noise.

Repeatedly insulting an asshole is not going to take a severe amount
of seconds of your busy life. You can simply ignore those messages.
I think calling an asshole an asshole is worth the effort. It makes
him waste time responding to those insults. Trolling trolls back is
wasting the troll's time.

On that note, I honestly could not care less what you personally
find "unacceptable" on usenet. Usenet is a cesspool anyway, and has
always been. There is no moderation, and that's probably one of the
reasons why it's almost dead and the vast majority of companies and
service providers have dropped support.

Chris M. Thomasson

unread,
May 19, 2021, 1:05:57 AM5/19/21
to
On 5/18/2021 10:02 PM, Juha Nieminen wrote:
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> What I gain is not seeing any more of your posts, with a resulting
>> improvement in the signal-to-noise ratio of my view of the newsgroup.
>
> Of an almost dead newsgroup at that.
>
>> Another possible gain is that I let you know that your behavior is
>> unacceptable. Repeatedly insulting a troll just adds useless noise.
>
> Repeatedly insulting an asshole is not going to take a severe amount
> of seconds of your busy life. You can simply ignore those messages.
> I think calling an asshole an asshole is worth the effort. It makes
> him waste time responding to those insults. Trolling trolls back is
> wasting the troll's time.

Well, feeding any troll with anything negative just might make it feel
stronger? Think of a troll as a prototype for the proverbial Cruel Puppet:

https://www.thezorklibrary.com/history/cruel_puppet.html

Fair enough?

Sp...@nowheresville.org

unread,
May 19, 2021, 3:20:04 AM5/19/21
to
On Tue, 18 May 2021 16:56:42 -0700
Keith Thompson <Keith.S.T...@gmail.com> wrote:
>Another possible gain is that I let you know that your behavior is
>unacceptable. Repeatedly insulting a troll just adds useless noise.

I'm curious as to why you think someone criticising an aspect of C++
is trolling. If this forum is merely to praise how wonderful the language
is to its acolytes then what purpose does it serve?

MrSpook_...@2hd58e950gxh.eu

unread,
May 19, 2021, 3:22:36 AM5/19/21
to
Why would I lie about something like that? It caused the compiler to crash,
thats a fact. If you don't want to believe it thats your problem, not mine.

MrSpoo...@a3i3cdf7_.info

unread,
May 19, 2021, 3:28:04 AM5/19/21
to
On Tue, 18 May 2021 17:56:02 +0200
Bonita Montero <Bonita....@gmail.com> wrote:
>> This was indeed somewhat weird of a choice. ...
>
>For me that's syntactically expressive enough to be noticed.
>
>> I seem to remember that the Borland C++ compiler would allow some
>> extension like
>> virtual LRESULT OnPaint(...) = WM_PAINT;
>
>Who programs Win32 directly today ?

Presumably the people who write the high level libraries you use.


Bonita Montero

unread,
May 19, 2021, 3:41:24 AM5/19/21
to
>> The numer isn't parsed as a number, but just a "= 0"-token,
>> so you're lying.

> Why would I lie about something like that? ...

Because we all know you're an asshole.

> It caused the compiler to crash, thats a fact.

No, you don't. It can be excluded that the 0 is parsed
as a number and not as a token of the grammar.

You're simply a liar.

Bonita Montero

unread,
May 19, 2021, 3:42:13 AM5/19/21
to
>> Who programs Win32 directly today ?

> Presumably the people who write the high level libraries you use.

That's 30 years ago when people programmed USER32.DLL directly.

Chris M. Thomasson

unread,
May 19, 2021, 3:53:58 AM5/19/21
to
All criticisms are welcome. I can say, back when C/C++11 first came out,
why was there not an eventcount or futex like thread sync mechanism?
Well, shit happens. The fun part is that they can be coded up in pure
C/C++11. Not ideal, but they can be coded.

Then the response can be nice, or evil... The response can be to tell me
to go snuff myself. That is a "troll'ish" response, well, imvvho, that is.

MrSpo...@4ieqo8ddusd3k1c8k.com

unread,
May 19, 2021, 4:23:13 AM5/19/21
to
On Wed, 19 May 2021 09:41:07 +0200
Bonita Montero <Bonita....@gmail.com> wrote:
>>> The numer isn't parsed as a number, but just a "= 0"-token,
>>> so you're lying.
>
>> Why would I lie about something like that? ...
>
>Because we all know you're an asshole.

I'm wondering you're a Juha sock puppet. You and him sound pretty similar.

>> It caused the compiler to crash, thats a fact.
>
>No, you don't. It can be excluded that the 0 is parsed
>as a number and not as a token of the grammar.

How the hell would you know how its being parsed? I doubt you've ever used
Solaris in your life but if you did you'd know that Suns earlier C++ compilers
could be rather flaky. This was just one example.

>You're simply a liar.

You're just a sore loser. You lost the previous argument and now you're
throwing your toys out the pram like a little baby. Grow up, get over it
and move on.

MrSpook_...@7sxv4z8mvmyz_.ac.uk

unread,
May 19, 2021, 4:28:37 AM5/19/21
to
On Wed, 19 May 2021 00:53:41 -0700
"Chris M. Thomasson" <chris.m.t...@gmail.com> wrote:
>On 5/19/2021 12:19 AM, Sp...@nowheresville.org wrote:
>> On Tue, 18 May 2021 16:56:42 -0700
>> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>>> Another possible gain is that I let you know that your behavior is
>>> unacceptable. Repeatedly insulting a troll just adds useless noise.
>>
>> I'm curious as to why you think someone criticising an aspect of C++
>> is trolling. If this forum is merely to praise how wonderful the language
>> is to its acolytes then what purpose does it serve?
>>
>
>All criticisms are welcome. I can say, back when C/C++11 first came out,
>why was there not an eventcount or futex like thread sync mechanism?
>Well, shit happens. The fun part is that they can be coded up in pure
>C/C++11. Not ideal, but they can be coded.

Presumably the same reason they're not part of the C language - C++ is a
cross platform language and some realtime kernel don't support futex's.
Arguably even having built in threading support in C++ is a step too far.
After all, if it has threading why doesn't it have built in multi process
support too?


Bonita Montero

unread,
May 19, 2021, 4:29:02 AM5/19/21
to
> How the hell would you know how its being parsed? ...

No one who is able to write something complex like a C++-compiler
would make such a beginners-failure and implement the language-tokens
wrong.

> I doubt you've ever used Solaris in your life but if you did you'd
> know that Suns earlier C++ compilers could be rather flaky. This
> was just one example.

Many uncommon compilers implement the standard not as correctly as
gcc, clang and MSVC, but such a basic beginner's failure is extremely
unlikely.

As you've been trolling here for a while it's likely that you're
also a liar.

Bonita Montero

unread,
May 19, 2021, 4:31:06 AM5/19/21
to
> All criticisms are welcome. I can say, back when C/C++11 first came out,
> why was there not an eventcount or futex like thread sync mechanism?

These are facilities which aren't supplied by every operating-system
but could be used to implement the synchronization-facilities C++11
provides.

> Well, shit happens. The fun part is that they can be coded up in pure
> C/C++11. Not ideal, but they can be coded.

No, futexes need explicit kernel-support.

Chris M. Thomasson

unread,
May 19, 2021, 4:34:31 AM5/19/21
to
On 5/19/2021 1:28 AM, MrSpook_pl1c1bg7i@7sxv4z8mvmyz_.ac.uk wrote:
> On Wed, 19 May 2021 00:53:41 -0700
> "Chris M. Thomasson" <chris.m.t...@gmail.com> wrote:
>> On 5/19/2021 12:19 AM, Sp...@nowheresville.org wrote:
>>> On Tue, 18 May 2021 16:56:42 -0700
>>> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>>>> Another possible gain is that I let you know that your behavior is
>>>> unacceptable. Repeatedly insulting a troll just adds useless noise.
>>>
>>> I'm curious as to why you think someone criticising an aspect of C++
>>> is trolling. If this forum is merely to praise how wonderful the language
>>> is to its acolytes then what purpose does it serve?
>>>
>>
>> All criticisms are welcome. I can say, back when C/C++11 first came out,
>> why was there not an eventcount or futex like thread sync mechanism?
>> Well, shit happens. The fun part is that they can be coded up in pure
>> C/C++11. Not ideal, but they can be coded.
>
> Presumably the same reason they're not part of the C language - C++ is a
> cross platform language and some realtime kernel don't support futex's.

Right. However, we can emulate an eventcount or futex in C++.


> Arguably even having built in threading support in C++ is a step too far.

Why?

> After all, if it has threading why doesn't it have built in multi process
> support too?

Humm...

Chris M. Thomasson

unread,
May 19, 2021, 4:35:22 AM5/19/21
to
Wel, true futex does, but it can be emulated.

Chris M. Thomasson

unread,
May 19, 2021, 4:36:16 AM5/19/21
to
think about it for a moment. How would you create an eventcount or futex
using pure C++11?

Chris M. Thomasson

unread,
May 19, 2021, 4:37:50 AM5/19/21
to
It can be done:

https://youtu.be/1G13KzEJqBw

;^)

Also, here is some code for an eventcount:

Read all:

https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/dbNokvg-nRIJ

MrSpook...@nz48t.gov

unread,
May 19, 2021, 4:40:32 AM5/19/21
to
On Wed, 19 May 2021 10:28:48 +0200
Bonita Montero <Bonita....@gmail.com> wrote:
>> How the hell would you know how its being parsed? ...
>
>No one who is able to write something complex like a C++-compiler
>would make such a beginners-failure and implement the language-tokens
>wrong.

Well they did.

>> I doubt you've ever used Solaris in your life but if you did you'd
>> know that Suns earlier C++ compilers could be rather flaky. This
>> was just one example.
>
>Many uncommon compilers implement the standard not as correctly as
>gcc, clang and MSVC, but such a basic beginner's failure is extremely
>unlikely.

Oh right. You're an expert in compiler design are you? You have no idea
how they implemented it.

>As you've been trolling here for a while it's likely that you're
>also a liar.

Well I'm not lying, it was a bug. You are a jackass however.

MrSpook_6...@nyyte.com

unread,
May 19, 2021, 4:44:17 AM5/19/21
to
On Wed, 19 May 2021 01:34:15 -0700
"Chris M. Thomasson" <chris.m.t...@gmail.com> wrote:
>On 5/19/2021 1:28 AM, MrSpook_pl1c1bg7i@7sxv4z8mvmyz_.ac.uk wrote:
>> On Wed, 19 May 2021 00:53:41 -0700
>> Presumably the same reason they're not part of the C language - C++ is a
>> cross platform language and some realtime kernel don't support futex's.
>
>Right. However, we can emulate an eventcount or futex in C++.

You can't emulate OS level locking in a higher level context.

>> Arguably even having built in threading support in C++ is a step too far.
>
>Why?

Because some systems don't even support threads - eg PIC.

>> After all, if it has threading why doesn't it have built in multi process
>> support too?
>
>Humm...

Humm indeed. I suspect its because the win32 process model is profoundly
broken and since Windows dev was/is arguably the largest user base for C++
they didn't see the point.

Chris M. Thomasson

unread,
May 19, 2021, 4:50:48 AM5/19/21
to
On 5/19/2021 1:44 AM, MrSpook_6...@nyyte.com wrote:
> On Wed, 19 May 2021 01:34:15 -0700
> "Chris M. Thomasson" <chris.m.t...@gmail.com> wrote:
>> On 5/19/2021 1:28 AM, MrSpook_pl1c1bg7i@7sxv4z8mvmyz_.ac.uk wrote:
>>> On Wed, 19 May 2021 00:53:41 -0700
>>> Presumably the same reason they're not part of the C language - C++ is a
>>> cross platform language and some realtime kernel don't support futex's.
>>
>> Right. However, we can emulate an eventcount or futex in C++.
>
> You can't emulate OS level locking in a higher level context.

Why not? I can emulate an eventcount, a futex is not that far off and
can be emulated as well. in C++11.


>>> Arguably even having built in threading support in C++ is a step too far.
>>
>> Why?
>
> Because some systems don't even support threads - eg PIC.

That's fine. Why is that a problem? Does it support C++11? If so, the
code shall run.


>>> After all, if it has threading why doesn't it have built in multi process
>>> support too?
>>
>> Humm...
>
> Humm indeed. I suspect its because the win32 process model is profoundly
> broken and since Windows dev was/is arguably the largest user base for C++
> they didn't see the point.
>


Windows has nothing to do with it.

Chris M. Thomasson

unread,
May 19, 2021, 4:53:26 AM5/19/21
to
We can even go lower and emulate a waitset as a linked list of condvars
with pure C++11.

Chris M. Thomasson

unread,
May 19, 2021, 4:54:39 AM5/19/21
to
It would need to result in SCHED_OTHER, but okay, for the emulation.

David Brown

unread,
May 19, 2021, 5:16:45 AM5/19/21
to
On 18/05/2021 17:35, MrSpoo...@jq7cn18h8lm.com wrote:
> On Tue, 18 May 2021 17:20:13 +0200
> Manfred <non...@add.invalid> wrote:
>> On 5/17/2021 4:56 PM, MrSpook_t...@d3zd4ilmme.gov wrote:
>>> On Mon, 17 May 2021 16:06:48 +0200
>>> Bonita Montero <Bonita....@gmail.com> wrote:
>>>>> - "= 0" nonsense for pure virtuals, t
>>>>
>>>> In most OOP-languages you've to declare pure virtual functions.
>>>
>>> I'm talking about the syntax , not the concept. Wtf is "= 0"? Its an ugly
>>> syntactic hack. They already created the new keyword "virtual" so why didn't
>>> they create another one called "pure"?
>>
>> This was indeed somewhat weird of a choice. I used to have a sense that
>> it was meant to be somehow expanded to other uses where the '0' would be
>> replaced with something else. But this never turned out to be the case,
>> at least in standard C++.
>>
>> I seem to remember that the Borland C++ compiler would allow some
>> extension like
>>
>> virtual LRESULT OnPaint(...) = WM_PAINT;
>>
>> Which sounds appealing, but in fact it fades away in very old memories -
>> maybe someone else may recall anything more clear about that, if this
>> was indeed a thing at all.
>
> I remember that anything other than zero would crash a number of older versions
> of the solaris compiler back in 00s.
>

A virtual function is syntactic sugar for a function pointer (in a
table). The syntax " = 0" for a pure virtual function is then obvious -
it is initialising the function pointer to a null pointer.

The compiler can then generate code to use the virtual function pointer
"vfp_foo" as :

if (vfp_foo) {
vfp_foo();
} else {
... call terminate ...
}

If you have initialised the virtual function pointer to a value that is
not 0, and not a valid function, anything might happen - including a
crash. A compiler with helpful warnings will tell you something is
wrong when you try to initialise it with something other than 0, but
perhaps an early version would assume that no one is silly enough to do
that, and just re-use existing initialisation handling to give the
programmer exactly the nonsense they asked for.

MrSpo...@aikd06tg1ez2i6hqi9.com

unread,
May 19, 2021, 5:29:27 AM5/19/21
to
All true, but I'm not talking about a program crash, I'm talking about
an actual compiler crash when it encountered " = 1;".

MrSpook_...@x37ixhgx27ymvhwc5.net

unread,
May 19, 2021, 5:32:15 AM5/19/21
to
On Wed, 19 May 2021 01:50:32 -0700
"Chris M. Thomasson" <chris.m.t...@gmail.com> wrote:
>On 5/19/2021 1:44 AM, MrSpook_6...@nyyte.com wrote:
>> On Wed, 19 May 2021 01:34:15 -0700
>> "Chris M. Thomasson" <chris.m.t...@gmail.com> wrote:
>>> On 5/19/2021 1:28 AM, MrSpook_pl1c1bg7i@7sxv4z8mvmyz_.ac.uk wrote:
>>>> On Wed, 19 May 2021 00:53:41 -0700
>>>> Presumably the same reason they're not part of the C language - C++ is a
>>>> cross platform language and some realtime kernel don't support futex's.
>>>
>>> Right. However, we can emulate an eventcount or futex in C++.
>>
>> You can't emulate OS level locking in a higher level context.
>
>Why not? I can emulate an eventcount, a futex is not that far off and
>can be emulated as well. in C++11.

Oh ok. So explain how you'd implement an atomic futex in userspace that say
was used to implement a semaphore that other processes would use.

>>
>> Because some systems don't even support threads - eg PIC.
>
>That's fine. Why is that a problem? Does it support C++11? If so, the
>code shall run.

No, it wouldn't. Real time compilers often only support a subset of a language
whether it be C or C++.

>> Humm indeed. I suspect its because the win32 process model is profoundly
>> broken and since Windows dev was/is arguably the largest user base for C++
>> they didn't see the point.
>>
>
>
>Windows has nothing to do with it.

What is the reason then?

Paavo Helde

unread,
May 19, 2021, 6:36:37 AM5/19/21
to
19.05.2021 12:29 MrSpo...@aikd06tg1ez2i6hqi9.com kirjutas:
>
> All true, but I'm not talking about a program crash, I'm talking about
> an actual compiler crash when it encountered " = 1;".

So there was a buggy compiler a long time ago which crashed on 'virtual
foo()=1;'. What makes you think it would not have crashed on
encountering 'virtual pyre foo();' if 'virtual pure foo();' were a
standardized syntax? A compiler can have bugs everywhere.

For not adding a new keyword like 'pure' in the language there was a
single reason only: to avoid conflicts with the existing C code which
might have had used this word. They wanted to keep the number of new
keywords at absolute minimum. The ease of writing the compilers was
never a concern (cf 'export').




Bonita Montero

unread,
May 19, 2021, 6:54:39 AM5/19/21
to
>> No one who is able to write something complex like a C++-compiler
>> would make such a beginners-failure and implement the language-tokens
>> wrong.

> Well they did.

As you already proved you're an asshole it's also very likely you're
a liar. Even more as this bug is very unlikely.

Bonita Montero

unread,
May 19, 2021, 6:56:21 AM5/19/21
to
> So there was a buggy compiler a long time ago which crashed on
> 'virtual foo()=1;'. ...

There has never been such compiler.
MrSpook should prove this - this must be documented,
the web doesn't forget anything.


Bonita Montero

unread,
May 19, 2021, 6:58:01 AM5/19/21
to
>>> Well, shit happens. The fun part is that they can be coded up in pure
>>> C/C++11. Not ideal, but they can be coded.

>> No, futexes need explicit kernel-support.

> Wel, true futex does, but it can be emulated.

No one needs pure futexes - they're used to build other synchronization
-facilities on top of them. Some of them are those you have in mind wich
could be used to emulate a futex.

MrSpo...@g2nz1m_2f4r2g8wqvgfd.co.uk

unread,
May 19, 2021, 7:07:51 AM5/19/21
to
On Wed, 19 May 2021 13:36:18 +0300
Paavo Helde <myfir...@osa.pri.ee> wrote:
>19.05.2021 12:29 MrSpo...@aikd06tg1ez2i6hqi9.com kirjutas:
>>
>> All true, but I'm not talking about a program crash, I'm talking about
>> an actual compiler crash when it encountered " = 1;".
>
>So there was a buggy compiler a long time ago which crashed on 'virtual
>foo()=1;'. What makes you think it would not have crashed on
>encountering 'virtual pyre foo();' if 'virtual pure foo();' were a

It may well have done.

>standardized syntax? A compiler can have bugs everywhere.

Well they are one of the most complex pieces of software around so it would
be amazing if they didn't.

>For not adding a new keyword like 'pure' in the language there was a
>single reason only: to avoid conflicts with the existing C code which
>might have had used this word. They wanted to keep the number of new

Plenty of C code probably used virtual, new, delete etc as function or
variable names too even though some combination of punctuation characters
would have done the job too. So why suddenly use "= 0" instead of "pure"?

MrSpo...@t65zb.com

unread,
May 19, 2021, 7:08:34 AM5/19/21
to
Thanks for your input sock puppet. Just because you can't find it in google
doesn't mean it doesn't exist.

Bonita Montero

unread,
May 19, 2021, 7:11:25 AM5/19/21
to
> Thanks for your input sock puppet.

I'm posting here for years and I'm no one's sock puppet.

> Just because you can't find it in google doesn't mean it doesn't exist.

Such a common bug wouuld be documented and could be found with
Google or whatever if it really existed, Mr. Liar.

MrSpoo...@vdgtzl3x.gov.uk

unread,
May 19, 2021, 7:19:23 AM5/19/21
to
Why would the bug mailing list for suns C++ compiler from the late 90s be
indexed on google?

Bonita Montero

unread,
May 19, 2021, 7:33:26 AM5/19/21
to
>> Such a common bug wouuld be documented and could be found with
>> Google or whatever if it really existed, Mr. Liar.

> Why would the bug mailing list for suns C++ compiler from the late 90s be
> indexed on google?

Because such contents would be available today.
My postings of the late 90s are also all available today.

Juha Nieminen

unread,
May 19, 2021, 8:01:54 AM5/19/21
to
Chris M. Thomasson <chris.m.t...@gmail.com> wrote:
> Well, feeding any troll with anything negative just might make it feel
> stronger? Think of a troll as a prototype for the proverbial Cruel Puppet:
>
> https://www.thezorklibrary.com/history/cruel_puppet.html
>
> Fair enough?

Ok, I'll stop.

Manfred

unread,
May 19, 2021, 9:17:13 AM5/19/21
to
On 5/19/2021 7:02 AM, Juha Nieminen wrote:
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> What I gain is not seeing any more of your posts, with a resulting
>> improvement in the signal-to-noise ratio of my view of the newsgroup.
>
> Of an almost dead newsgroup at that.

And then why do you post here?

>
>> Another possible gain is that I let you know that your behavior is
>> unacceptable. Repeatedly insulting a troll just adds useless noise.
>
> Repeatedly insulting an asshole is not going to take a severe amount
> of seconds of your busy life. You can simply ignore those messages.
> I think calling an asshole an asshole is worth the effort. It makes
> him waste time responding to those insults. Trolling trolls back is
> wasting the troll's time.
>
> On that note, I honestly could not care less what you personally
> find "unacceptable" on usenet. Usenet is a cesspool anyway, and has
> always been. There is no moderation, and that's probably one of the
> reasons why it's almost dead and the vast majority of companies and
> service providers have dropped support.
>

You know that your recent deliberately insulting posts would have been
blocked by any decent moderator, right?

MrSpook_o...@bap.com

unread,
May 19, 2021, 9:30:15 AM5/19/21
to
Do you know the difference between public usenet postings and a mailing
list?

You know what, I can't be bothered to argue over this trivial issue. If
for some bizarre reason you won't except that some 20+ year old C++ compiler
had a trivial bug then fine, don't, I really don't bloody care.

James Kuyper

unread,
May 19, 2021, 10:08:12 AM5/19/21
to
On 5/19/21 1:02 AM, Juha Nieminen wrote:
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> What I gain is not seeing any more of your posts, with a resulting
>> improvement in the signal-to-noise ratio of my view of the newsgroup.
>
> Of an almost dead newsgroup at that.

Google no longer provides message counts by newsgroup in any place I
could easily find. However, dozens of threads have had hundreds of
messages added to them in this newsgroup during this month alone. That's
less than the peak activity level for this newsgroup, but it's not
enormously smaller than that peak, either.
I will grant you that most of those messages were posted by people I've
got killfiled - the number of messages worth reading is much smaller
than the number posted - but that's always been the case.

> On that note, I honestly could not care less what you personally
> find "unacceptable" on usenet.

Why should that matter? Keith's killfile is for Keith, not you. If he
finds your behavior unacceptable, then that's all the justification HE
needs for making sure that he no longer sees it.

Bonita Montero

unread,
May 19, 2021, 10:18:03 AM5/19/21
to
> Do you know the difference between public usenet postings and a mailing
> list?

You can even read Linux mailinglists from the beginning of the 90s,
Mr. Liar.

James Kuyper

unread,
May 19, 2021, 10:21:08 AM5/19/21
to
On 5/19/21 3:19 AM, Sp...@nowheresville.org wrote:
> On Tue, 18 May 2021 16:56:42 -0700
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>> Another possible gain is that I let you know that your behavior is
>> unacceptable. Repeatedly insulting a troll just adds useless noise.
>
> I'm curious as to why you think someone criticising an aspect of C++
> is trolling. If this forum is merely to praise how wonderful the language
> is to its acolytes then what purpose does it serve?

Trolling is defined as intentionally posting an upsetting message for
the purpose of triggering a response, rather than a serious attempt to
discuss the issue. It comes from the practice of trolling for fish, with
the triggered response considered to be analogous to the fish going for
your bait. Most trolling is also criticism.
Whether any given piece of criticism is also a troll is often a very
subjective judgement call, and if you honestly don't already recognize
this particular criticism as trolling, I can't imagine what I could say
to change your mind, so I won't bother trying.

James Kuyper

unread,
May 19, 2021, 10:34:21 AM5/19/21
to
On 5/19/21 5:16 AM, David Brown wrote:
> On 18/05/2021 17:35, MrSpoo...@jq7cn18h8lm.com wrote:
...
>> I remember that anything other than zero would crash a number of older versions
>> of the solaris compiler back in 00s.
>>
>
> A virtual function is syntactic sugar for a function pointer (in a
> table). The syntax " = 0" for a pure virtual function is then obvious -
> it is initialising the function pointer to a null pointer.

The key point, which no one seems to have stated explicitly, is that
using anything other than 0 in this location constitutes a syntax error.
A pure specifier is optional, but the only permitted form for a
pure-specifier is "= 0". It's unambiguously a diagnosable rule, the
violation of which requires a diagnostic message. Any decent compiler
will generate such a diagnostic. It's certainly possible for a compiler
to have a bug in it that would cause it to crash rather than generate
that diagnostic, so the claim that MrSpook must be lying is unjustified.
But I do think it an implausible type of bug.

MrSpo...@mpi.com

unread,
May 19, 2021, 10:55:28 AM5/19/21
to
On Wed, 19 May 2021 10:34:03 -0400
James Kuyper <james...@alumni.caltech.edu> wrote:
>On 5/19/21 5:16 AM, David Brown wrote:
>> On 18/05/2021 17:35, MrSpoo...@jq7cn18h8lm.com wrote:
>....
Most bugs are fairly implausible but they happen. It was a real bug. Its
possible the compiler has some extension that allowed a non zero value to
be assigned, perhaps a function pointer so anything non zero would be
treated as an address. Thats a guess, I have no idea. Regardless it crashed
quite spectacularly IIRC , not a segfault but an internal stack dump.

MrSpook...@o2cr9.ac.uk

unread,
May 19, 2021, 10:57:22 AM5/19/21
to
I imagine the linux mailing lists were public. The sun ones would have
been probably have been restricted to customers. The Sun compiler was paid
for back then.

>Mr. Liar.

This is you I presume?

https://stackoverflow.com/users/6469690/bonita-montero

Your name is a lie.

Bonita Montero

unread,
May 19, 2021, 11:49:43 AM5/19/21
to
> I imagine the linux mailing lists were public. The sun ones would have
> been probably have been restricted to customers. The Sun compiler was paid
> for back then.

Please proved the paid mailing-lists ...
That'S me.

Bonita Montero

unread,
May 19, 2021, 12:13:59 PM5/19/21
to
Trolling is when the provocation ends in itself and is not
rooted in the real opinions of the trolls. There might be
idiots with strange attitudes which might be provocating
#that they seem to be trolling - but the stand behind their
stupid opinions and thereby arent really trolls. Maybe
MrSpook is such a stupid person.

Mr Flibble

unread,
May 19, 2021, 12:15:35 PM5/19/21
to
This is a classic case of first trying to explain away a basic mistake
that you aren't man enough to admit to and then an attempt to backtrack.

No, no C++ compiler has ever used the pure specifier as a function pointer.

/Flibble

Keith Thompson

unread,
May 19, 2021, 1:09:53 PM5/19/21
to
Sp...@nowheresville.org writes:
> On Tue, 18 May 2021 16:56:42 -0700
> Keith Thompson <Keith.S.T...@gmail.com> wrote:
>>Another possible gain is that I let you know that your behavior is
>>unacceptable. Repeatedly insulting a troll just adds useless noise.
>
> I'm curious as to why you think someone criticising an aspect of C++
> is trolling. If this forum is merely to praise how wonderful the language
> is to its acolytes then what purpose does it serve?

I don't, and it isn't. I've simply chosen to update my killfile
(actually a Gnus score file) to improve the signal-to-noise ratio of my
personal view of this newsgroup. If you wish to discuss it further, my
email address is valid.

--
Keith Thompson (The_Other_Keith) Keith.S.T...@gmail.com
Working, but not speaking, for Philips Healthcare
void Void(void) { Void(); } /* The recursive call of the void */
It is loading more messages.
0 new messages