Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #71498 > unrolled thread
| Started by | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| First post | 2020-01-22 08:32 +0100 |
| Last post | 2020-02-26 02:22 +0000 |
| Articles | 18 — 7 participants |
Back to article view | Back to comp.lang.c++
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: two's complement idea Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 08:32 +0100
Re: two's complement idea "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2020-01-22 09:23 +0100
Re: two's complement idea Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-22 14:20 +0100
Re: two's complement idea Chris Vine <chris@cvine--nospam--.freeserve.co.uk> - 2020-01-22 13:37 +0000
Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-01-27 01:17 -0800
Re: two's complement idea "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2020-01-27 12:35 +0100
Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-15 05:56 -0800
Re: two's complement idea "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2020-02-16 09:17 +0100
Re: two's complement idea Richard Damon <Richard@Damon-Family.org> - 2020-02-21 19:35 -0500
Re: two's complement idea "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2020-02-22 07:01 +0100
Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-24 08:22 -0800
Re: two's complement idea cross@spitfire.i.gajendra.net (Dan Cross) - 2020-02-24 03:12 +0000
Re: two's complement idea cdalten@gmail.com - 2020-02-24 05:53 -0800
Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-25 07:56 -0800
Re: two's complement idea cross@spitfire.i.gajendra.net (Dan Cross) - 2020-02-25 22:00 +0000
Re: two's complement idea Tim Rentsch <tr.17687@z991.linuxsc.com> - 2020-02-25 16:14 -0800
Re: two's complement idea cdalten@gmail.com - 2020-02-25 18:18 -0800
Re: two's complement idea cross@spitfire.i.gajendra.net (Dan Cross) - 2020-02-26 02:22 +0000
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Date | 2020-01-22 08:32 +0100 |
| Subject | Re: two's complement idea |
| Message-ID | <r08tpr$e3b$1@news.albasani.net> |
I recently had the problem that I wanted to have a constant which is size_t wide and where the highest bit is set. I simply solved it that way (I assume ptrdiff_t as wide as size_t, but this should be common today on all platforms): std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); A guarantee from the standard that signed values are 2's-complement woud be nice for that.
[toc] | [next] | [standalone]
| From | "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> |
|---|---|
| Date | 2020-01-22 09:23 +0100 |
| Message-ID | <r090qk$dv2$1@dont-email.me> |
| In reply to | #71498 |
On 22.01.2020 08:32, Bonita Montero wrote: > I recently had the problem that I wanted to have a constant which is > size_t wide and where the highest bit is set. I simply solved it that > way (I assume ptrdiff_t as wide as size_t, but this should be common > today on all platforms): > std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); > A guarantee from the standard that signed values are 2's-complement > woud be nice for that. C++20 will give you that guarantee. But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 guarantees. Every time I discover a vastly simpler way of doing something, so that I prove myself stupid, I feel more optimistic since evidently my mind is still working. - Alf
[toc] | [prev] | [next] | [standalone]
| From | Bonita Montero <Bonita.Montero@gmail.com> |
|---|---|
| Date | 2020-01-22 14:20 +0100 |
| Message-ID | <r09i68$t8f$1@news.albasani.net> |
| In reply to | #71499 |
> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 > guarantees. I think it would be better to write (size_t)(ptrdiff_t)-1 because the conversion of signed ints to size_t is UB when the int is nega- tive. I.e. the compiler could first make the value unsigned and then extend the value that you might get 0x00000000FFFFFFFFu on a 64-bit -machine. With the above cast to ptrdiff_t you have at least the guarantee that the value is widened with its sign.
[toc] | [prev] | [next] | [standalone]
| From | Chris Vine <chris@cvine--nospam--.freeserve.co.uk> |
|---|---|
| Date | 2020-01-22 13:37 +0000 |
| Message-ID | <20200122133741.f1f6c0810d031525560d009a@cvine--nospam--.freeserve.co.uk> |
| In reply to | #71512 |
On Wed, 22 Jan 2020 14:20:08 +0100 Bonita Montero <Bonita.Montero@gmail.com> wrote: > > But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 > > guarantees. > > I think it would be better to write (size_t)(ptrdiff_t)-1 because > the conversion of signed ints to size_t is UB when the int is nega- > tive. I.e. the compiler could first make the value unsigned and then > extend the value that you might get 0x00000000FFFFFFFFu on a 64-bit > -machine. With the above cast to ptrdiff_t you have at least the > guarantee that the value is widened with its sign. size_t(-1) has defined behaviour in C++, if that is your point. The representation depends on the size and signedness of the destination, not the source: "A prvalue of an integer type can be converted to a prvalue of another integer type ... . If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source integer (modulo 2 n where n is the number of bits used to represent the unsigned type). [ Note: In a two’s complement representation, this conversion is conceptual and there is no change in the bit pattern (if there is no truncation). — end note ]" size_t(-1) will always give you all bits set, whatever the signed representation of -1 (bits will be altered if necessary).
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2020-01-27 01:17 -0800 |
| Message-ID | <868slti7gm.fsf@linuxsc.com> |
| In reply to | #71499 |
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: > On 22.01.2020 08:32, Bonita Montero wrote: > >> I recently had the problem that I wanted to have a constant which is >> size_t wide and where the highest bit is set. I simply solved it that >> way (I assume ptrdiff_t as wide as size_t, but this should be common >> today on all platforms): >> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >> A guarantee from the standard that signed values are 2's-complement >> woud be nice for that. > > C++20 will give you that guarantee. > > But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 > guarantees. Or just size_t(-1)/2+1.
[toc] | [prev] | [next] | [standalone]
| From | "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> |
|---|---|
| Date | 2020-01-27 12:35 +0100 |
| Message-ID | <r0mhtd$j13$1@dont-email.me> |
| In reply to | #71616 |
On 27.01.2020 10:17, Tim Rentsch wrote: > "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: > >> On 22.01.2020 08:32, Bonita Montero wrote: >> >>> I recently had the problem that I wanted to have a constant which is >>> size_t wide and where the highest bit is set. I simply solved it that >>> way (I assume ptrdiff_t as wide as size_t, but this should be common >>> today on all platforms): >>> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >>> A guarantee from the standard that signed values are 2's-complement >>> woud be nice for that. >> >> C++20 will give you that guarantee. >> >> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >> guarantees. > > Or just size_t(-1)/2+1. Or ~(size_t(-1)/2). There. :-) Thanks, - Alf
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2020-02-15 05:56 -0800 |
| Message-ID | <86a75kgdjh.fsf@linuxsc.com> |
| In reply to | #71622 |
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: > On 27.01.2020 10:17, Tim Rentsch wrote: > >> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: >> >>> On 22.01.2020 08:32, Bonita Montero wrote: >>> >>>> I recently had the problem that I wanted to have a constant which is >>>> size_t wide and where the highest bit is set. I simply solved it that >>>> way (I assume ptrdiff_t as wide as size_t, but this should be common >>>> today on all platforms): >>>> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >>>> A guarantee from the standard that signed values are 2's-complement >>>> woud be nice for that. >>> >>> C++20 will give you that guarantee. >>> >>> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >>> guarantees. >> >> Or just size_t(-1)/2+1. > > Or ~(size_t(-1)/2). In practice that is highly likely to work, but strictly speaking it is not guaranteed (at least not in C; I believe that holds also in C++ but I am less well-versed in the C++ standard than the C standard). The reason is size_t is not required to be at least as wide as int, so the ~ could produce a negative value.
[toc] | [prev] | [next] | [standalone]
| From | "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> |
|---|---|
| Date | 2020-02-16 09:17 +0100 |
| Message-ID | <r2atqe$8je$1@dont-email.me> |
| In reply to | #71855 |
On 15.02.2020 14:56, Tim Rentsch wrote: > "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: > >> On 27.01.2020 10:17, Tim Rentsch wrote: >> >>> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: >>> >>>> On 22.01.2020 08:32, Bonita Montero wrote: >>>> >>>>> I recently had the problem that I wanted to have a constant which is >>>>> size_t wide and where the highest bit is set. I simply solved it that >>>>> way (I assume ptrdiff_t as wide as size_t, but this should be common >>>>> today on all platforms): >>>>> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >>>>> A guarantee from the standard that signed values are 2's-complement >>>>> woud be nice for that. >>>> >>>> C++20 will give you that guarantee. >>>> >>>> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >>>> guarantees. >>> >>> Or just size_t(-1)/2+1. >> >> Or ~(size_t(-1)/2). > > In practice that is highly likely to work, but strictly speaking > it is not guaranteed (at least not in C; I believe that holds > also in C++ but I am less well-versed in the C++ standard than > the C standard). The reason is size_t is not required to be at > least as wide as int, so the ~ could produce a negative value. Interesting point. Does any C or C++ implemention with sizeof(size_t) < sizeof(int) exist, or has any such implementation existed? Fix: `~(size_t(-1)/2u)`. But the question is, since code is about communicating to humans, does this communicate the right thing? - Alf
[toc] | [prev] | [next] | [standalone]
| From | Richard Damon <Richard@Damon-Family.org> |
|---|---|
| Date | 2020-02-21 19:35 -0500 |
| Message-ID | <IH_3G.207897$MX1.202990@fx43.iad> |
| In reply to | #71868 |
On 2/16/20 3:17 AM, Alf P. Steinbach wrote: > On 15.02.2020 14:56, Tim Rentsch wrote: >> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: >> >>> On 27.01.2020 10:17, Tim Rentsch wrote: >>> >>>> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: >>>> >>>>> On 22.01.2020 08:32, Bonita Montero wrote: >>>>> >>>>>> I recently had the problem that I wanted to have a constant which is >>>>>> size_t wide and where the highest bit is set. I simply solved it >>>>>> that >>>>>> way (I assume ptrdiff_t as wide as size_t, but this should be common >>>>>> today on all platforms): >>>>>> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >>>>>> A guarantee from the standard that signed values are 2's-complement >>>>>> woud be nice for that. >>>>> >>>>> C++20 will give you that guarantee. >>>>> >>>>> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >>>>> guarantees. >>>> >>>> Or just size_t(-1)/2+1. >>> >>> Or ~(size_t(-1)/2). >> >> In practice that is highly likely to work, but strictly speaking >> it is not guaranteed (at least not in C; I believe that holds >> also in C++ but I am less well-versed in the C++ standard than >> the C standard). The reason is size_t is not required to be at >> least as wide as int, so the ~ could produce a negative value. > > Interesting point. > > Does any C or C++ implemention with sizeof(size_t) < sizeof(int) exist, > or has any such implementation existed? > > Fix: `~(size_t(-1)/2u)`. But the question is, since code is about > communicating to humans, does this communicate the right thing? > > - Alf You still have the issue that if size_t is smaller than int (and unsigned) the ~ operator will set more bits then the upper bit of size_t maybe size_t(~(size_t(-1)/2u))) but the +1 version I think is cleaner.
[toc] | [prev] | [next] | [standalone]
| From | "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> |
|---|---|
| Date | 2020-02-22 07:01 +0100 |
| Message-ID | <r2qg42$a1l$1@dont-email.me> |
| In reply to | #71938 |
On 22.02.2020 01:35, Richard Damon wrote: > On 2/16/20 3:17 AM, Alf P. Steinbach wrote: >> On 15.02.2020 14:56, Tim Rentsch wrote: >>> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: >>> >>>> On 27.01.2020 10:17, Tim Rentsch wrote: >>>> >>>>> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes: >>>>> >>>>>> On 22.01.2020 08:32, Bonita Montero wrote: >>>>>> >>>>>>> I recently had the problem that I wanted to have a constant which is >>>>>>> size_t wide and where the highest bit is set. I simply solved it >>>>>>> that >>>>>>> way (I assume ptrdiff_t as wide as size_t, but this should be common >>>>>>> today on all platforms): >>>>>>> std::size_t const SIZE_T_MSB = >>>>>>> std::numeric_limits<ptrdiff_t>::min(); >>>>>>> A guarantee from the standard that signed values are 2's-complement >>>>>>> woud be nice for that. >>>>>> >>>>>> C++20 will give you that guarantee. >>>>>> >>>>>> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >>>>>> guarantees. >>>>> >>>>> Or just size_t(-1)/2+1. >>>> >>>> Or ~(size_t(-1)/2). >>> >>> In practice that is highly likely to work, but strictly speaking >>> it is not guaranteed (at least not in C; I believe that holds >>> also in C++ but I am less well-versed in the C++ standard than >>> the C standard). The reason is size_t is not required to be at >>> least as wide as int, so the ~ could produce a negative value. >> >> Interesting point. >> >> Does any C or C++ implemention with sizeof(size_t) < sizeof(int) >> exist, or has any such implementation existed? >> >> Fix: `~(size_t(-1)/2u)`. But the question is, since code is about >> communicating to humans, does this communicate the right thing? >> >> - Alf > > You still have the issue that if size_t is smaller than int (and > unsigned) the ~ operator will set more bits then the upper bit of size_t Not in the given context, as initializer for a `size_t` constant. > maybe > > size_t(~(size_t(-1)/2u))) > but the +1 version I think is cleaner. Not needed. :) - Alf
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2020-02-24 08:22 -0800 |
| Message-ID | <86ftf0arax.fsf@linuxsc.com> |
| In reply to | #71868 |
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes:
> On 15.02.2020 14:56, Tim Rentsch wrote:
>
>> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes:
>>
>>> On 27.01.2020 10:17, Tim Rentsch wrote:
>>>
>>>> "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> writes:
>>>>
>>>>> On 22.01.2020 08:32, Bonita Montero wrote:
>>>>>
>>>>>> I recently had the problem that I wanted to have a constant which is
>>>>>> size_t wide and where the highest bit is set. I simply solved it that
>>>>>> way (I assume ptrdiff_t as wide as size_t, but this should be common
>>>>>> today on all platforms):
>>>>>> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min();
>>>>>> A guarantee from the standard that signed values are 2's-complement
>>>>>> woud be nice for that.
>>>>>
>>>>> C++20 will give you that guarantee.
>>>>>
>>>>> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98
>>>>> guarantees.
>>>>
>>>> Or just size_t(-1)/2+1.
>>>
>>> Or ~(size_t(-1)/2).
>>
>> In practice that is highly likely to work, but strictly speaking
>> it is not guaranteed (at least not in C; I believe that holds
>> also in C++ but I am less well-versed in the C++ standard than
>> the C standard). The reason is size_t is not required to be at
>> least as wide as int, so the ~ could produce a negative value.
>
> Interesting point.
>
> Does any C or C++ implemention with sizeof(size_t) < sizeof(int)
> exist, or has any such implementation existed?
I doubt it. Certainly I don't know of any.
> Fix: `~(size_t(-1)/2u)`. But the question is, since code is about
> communicating to humans, does this communicate the right thing?
I prefer the form I gave, because it's easer to see that the
value it produces is correct, and because it is less brittle, in
the sense that it doesn't depend on surrounding context to
produce the correct value. Come to think of it though I would
change it slightly, to get a form that works in both C and C++:
(size_t)-1 /2 +1
Normally in cases like this I would look for an alternative that
does not use a cast. Here though I think a cast is necessary:
other possible ways of robustly getting the right value all are
worse in one way or another AFAICS. Of course, if <stdint.h>
has been #include'd, we could use
SIZE_MAX/2 + 1
which uses neither a cast nor the converting of -1. So that's
probably better, in most circumstances, than the other forms
mentioned.
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2020-02-24 03:12 +0000 |
| Message-ID | <r2veum$8oa$1@reader2.panix.com> |
| In reply to | #71499 |
In article <r090qk$dv2$1@dont-email.me>, Alf P. Steinbach <alf.p.steinbach+usenet@gmail.com> wrote: >On 22.01.2020 08:32, Bonita Montero wrote: >> I recently had the problem that I wanted to have a constant which is >> size_t wide and where the highest bit is set. I simply solved it that >> way (I assume ptrdiff_t as wide as size_t, but this should be common >> today on all platforms): >> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >> A guarantee from the standard that signed values are 2's-complement >> woud be nice for that. > >C++20 will give you that guarantee. > >But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >guarantees. Hmm, can't one simply compute: ~(size_t)0 ^ (~(size_t)0 >> 1) ?
[toc] | [prev] | [next] | [standalone]
| From | cdalten@gmail.com |
|---|---|
| Date | 2020-02-24 05:53 -0800 |
| Message-ID | <23c15c46-b7bf-44d1-a73f-f9a3db81a977@googlegroups.com> |
| In reply to | #71988 |
On Sunday, February 23, 2020 at 7:12:31 PM UTC-8, Dan Cross wrote: > In article <r090qk$dv2$1@dont-email.me>, > Alf P. Steinbach <alf.p.steinbach+usenet@gmail.com> wrote: > >On 22.01.2020 08:32, Bonita Montero wrote: > >> I recently had the problem that I wanted to have a constant which is > >> size_t wide and where the highest bit is set. I simply solved it that > >> way (I assume ptrdiff_t as wide as size_t, but this should be common > >> today on all platforms): > >> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); > >> A guarantee from the standard that signed values are 2's-complement > >> woud be nice for that. > > > >C++20 will give you that guarantee. > > > >But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 > >guarantees. > > Hmm, can't one simply compute: > > ~(size_t)0 ^ (~(size_t)0 >> 1) > > ? Bad Dan. No cookie.
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2020-02-25 07:56 -0800 |
| Message-ID | <86y2sqace9.fsf@linuxsc.com> |
| In reply to | #71988 |
cross@spitfire.i.gajendra.net (Dan Cross) writes: > In article <r090qk$dv2$1@dont-email.me>, > Alf P. Steinbach <alf.p.steinbach+usenet@gmail.com> wrote: > >> On 22.01.2020 08:32, Bonita Montero wrote: >> >>> I recently had the problem that I wanted to have a constant which is >>> size_t wide and where the highest bit is set. I simply solved it that >>> way (I assume ptrdiff_t as wide as size_t, but this should be common >>> today on all platforms): >>> std::size_t const SIZE_T_MSB = std::numeric_limits<ptrdiff_t>::min(); >>> A guarantee from the standard that signed values are 2's-complement >>> woud be nice for that. >> >> C++20 will give you that guarantee. >> >> But e.g. `size_t(-1) - size_t(-1)/2` does the job with just C++98 >> guarantees. > > Hmm, can't one simply compute: > > ~(size_t)0 ^ (~(size_t)0 >> 1) > > ? Why not just this? (size_t)-1 /2 +1
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2020-02-25 22:00 +0000 |
| Message-ID | <r345ek$pdi$1@reader2.panix.com> |
| In reply to | #72021 |
In article <86y2sqace9.fsf@linuxsc.com>, Tim Rentsch <tr.17687@z991.linuxsc.com> wrote: >Why not just this? (size_t)-1 /2 +1 Because I didn't think of it before you posted it, Tim. :-) - Dan C.
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2020-02-25 16:14 -0800 |
| Message-ID | <86tv3e9pc4.fsf@linuxsc.com> |
| In reply to | #72022 |
cross@spitfire.i.gajendra.net (Dan Cross) writes: > In article <86y2sqace9.fsf@linuxsc.com>, > Tim Rentsch <tr.17687@z991.linuxsc.com> wrote: > >> Why not just this? (size_t)-1 /2 +1 > > Because I didn't think of it before you posted > it, Tim. :-) Thank you for that Dan. It's good to see you back in the newsgroups again.
[toc] | [prev] | [next] | [standalone]
| From | cdalten@gmail.com |
|---|---|
| Date | 2020-02-25 18:18 -0800 |
| Message-ID | <bf72f845-d34f-4396-82d8-1abd62239efc@googlegroups.com> |
| In reply to | #72023 |
Since Dan Cross has me blocked because I called him out for the wife beater that he is, let me try to fill you in on my Cross has been MIA. Background. Dan is a Math guy who used to serve in the USMC. At the time he was dating some Russian woman. They broke up because he got tired of her being the "man" in the relationship. Now let's fast forward. He found some chick from the Gaza Strip that was desperate enough to date him. They've stuck together because she let's him be the man in the relationship. They even have a kid! He also likes the fact that he can beat his gf. Whereas with the Russian woman, well, everytime that he got pissed off, she basically beat his ass. This despite that fact that he was in the USMC! These days he spends a lot of time on arbornet.org and grex.org. He goes under the name of cross on both of these sites. He prefers to hang out there because both systems are dominated by fat, middle aged, balding white men. He talks to the menz on these sites all the time just in case his current girlfriend finds a real man. Why? So he could date one of these guys!!! Dan Cross isn't getting any younger. It's now getting to the point where he will settle down with anything on two legs. This could be male, female, or shemale.
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2020-02-26 02:22 +0000 |
| Message-ID | <r34kpt$9o6$1@reader2.panix.com> |
| In reply to | #72023 |
In article <86tv3e9pc4.fsf@linuxsc.com>, Tim Rentsch <tr.17687@z991.linuxsc.com> wrote: >> Because I didn't think of it before you posted >> it, Tim. :-) > >Thank you for that Dan. It's good to see you back >in the newsgroups again. Thanks, Tim! It's nice to be reading. - Dan C.
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.c++
csiph-web