Monday, October 31, 2016

Digest for comp.lang.c++@googlegroups.com - 4 updates in 2 topics

Gareth Owen <gwowen@gmail.com>: Oct 31 07:43PM


> Uhm, none of the above seems at all useful to me.
 
You should write a letter to the people form who it is useful, and let
them know they're wrong then. It'll be a shame for all the
undergraduates using Mobius transformation groups to solve 2D
incompressible flow problems.
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 31 09:24PM +0100

On 31.10.2016 20:43, Gareth Owen wrote:
 
>> Uhm, none of the above seems at all useful to me.
 
> You should write a letter to the people form who it is useful, and let
> them know they're wrong then.
 
Well, that's a provably false assertion. A so called straw man argument,
which is classical fallacy. I have not said they're wrong.
 
But regarding the utility of the (IHMO) idiocy, if you'd like to discuss
that the burden of proof is on you sir.
 
 
> It'll be a shame for all the
> undergraduates using Mobius transformation groups to solve 2D
> incompressible flow problems.
 
Do explain how that (if it has some meaning) is relevant to the current
discussion.
 
I posit that if you can't explain it in a way that I understand, then as
far as being an argument made by you it's invalid.
 
Thank you.
 
 
Cheers!,
 
- Alf
Jerry Stuckle <jstucklex@attglobal.net>: Oct 31 06:23PM -0400

On 10/31/2016 1:57 PM, Gareth Owen wrote:
>> should be deleted. Again: division by zero is undefined in kosher
>> mathematics.
 
> Wow. That's ... Stucklesque.
 
Wrong. I go by the facts - not what someone who claims to be an expert
because he read an article in Wikipedia says.
 
And yes, division by zero is valid in some mathematics.
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
red floyd <no.spam.here@its.invalid>: Oct 30 08:55PM -0700


> Brian
> Ebenezer Enterprises
> http://webEbenezer.net
 
Fuck off.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

Digest for comp.lang.c++@googlegroups.com - 25 updates in 3 topics

Juha Nieminen <nospam@thanks.invalid>: Oct 31 08:19AM

> Does it say anywhere that a division by zero /is/ allowed
> (is not undefined behavior) in floating-point divisions?
 
It's UB. In some systems you might get the IEEE floating point value
of "infinity". In other systems you will get a system signal (which
will abort your program unless you catch it with a system-specific
method). Even in the former case the compiler may optimize the
code in such a manner that it does something else than give you inf
as the result.
 
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---
mark <mark@invalid.invalid>: Oct 31 10:25AM +0100

On 2016-10-30 00:46, Stefan Ram wrote:
> course, evaluating to "Inf" is subsumed by UB, but when the
> programmer has no guarantee for that result, it is not worth
> that much.
 
C++14 standard:
<<<
static constexpr bool is_iec559;
True if and only if the type adheres to IEC 559 standard.
 
IEC559 standard:
<<<
7.3 Division by zero
The divideByZero exception shall be signaled if and only if an exact
infinite result is defined for an operation on finite operands. The
default result of divideByZero shall be an ∞ correctly signed according
to the operation:
...
 
So I don't see how anyone could argue that the behavior is undefined,
since that would directly contradict IEC 559 adherence.
David Brown <david.brown@hesbynett.no>: Oct 31 10:44AM +0100

On 30/10/16 21:40, Alf P. Steinbach wrote:
 
>>> Nonsense.
 
>> No, it is not nonsense - it is perfectly reasonable mathematics.
 
> Is it? What's it use then?
 
You can look up projective planes, projectively extended real lines,
etc., on Wikipedia. The most useful variation, I believe, is the
Reimann sphere which is the complex numbers with an infinity added.
Imagine taking the complex plane as a sheet of rubber and wrapping it
around a sphere, stretching and squashing as necessary (I don't know
your mathematical background, but you will probably have heard of
topology being described as "rubber sheet geometry"). You can make it
all fit as neatly as you want, but there is still a tiny hole left. The
Reimann sphere has that hole filled in with "infinity". As well as
being useful in mathematics, it turns out to be helpful in quantum
physics, I believe.
 
Of course, once you start adding a single infinity and the result of
division by zero to be that infinity, you no longer have a field and
lose some mathematical properties while gaining others. And in the
Reimann sphere (or the projectively extended real line, which is a sort
of circular version) then 0/0 and inf/inf are still undefined.
 
It can also be useful to use vectors of the form (x, y, z, u) in 3
dimensional geometry, where your points are (x/u, y/u, z/u) for any
non-zero u. Zero u represents directions, but not points.
 
So there are many situations where you might want infinities, or
divisions by zero (the two are not the same - hyperreals have
infinities, but no division by zero). But division by zero does not
make sense within the mathematics directly supported by C and C++ -
integer arithmetic, modulo arithmetic, and floating point approximations
to reals and complex numbers.
David Brown <david.brown@hesbynett.no>: Oct 31 10:48AM +0100

On 30/10/16 21:36, Mr Flibble wrote:
>> real numbers.
 
> But in mathematics division by zero is undefined so you are talking
> bollocks.
 
Ah, the old "proof by repeated assertion" - re-enforced by gratuitously
colourful language. (I have nothing against a bit of swearing where
appropriate - but it does not help when you are wrong.)
 
Mathematics is more than the arithmetic you learned at school - and more
than the arithmetic supported directly by C++. There are useful
mathematical structures in which division by zero /is/ defined (though
usually excluding 0/0). You might not be familiar with them - most
people are not - but they still exist.
David Brown <david.brown@hesbynett.no>: Oct 31 11:09AM +0100

On 30/10/16 22:04, Rick C. Hodgin wrote:
> parts, would be able to apply something like a cask to indicate that in
> a particular portion, this should be the result should it encounter a
> division by zero condition.
 
It is very rare that there is any sensible answer for the result, except
an error indicator. If you have an algorithm that may end up doing
division by zero, then spotting that error and trapping it in some way
could be a good idea. Whether you call that a NaN, a trap, an exception
or a cask is just details. And if it helps the software developer write
better code, or spot their mistakes faster, great.
 
However, I would say that if an algorithm can try to execute a division
by zero, the algorithm is broken. At best, it is going to be wildly
unstable somewhere - your tools may trap division by zero, but what
about division by 0.00000000000000000000000000000001 that is likely to
be just as wrong?
 
>> undefined in the language.
 
> Yes, because that's the way it is today. I'm suggesting it shouldn't be
> like that, and with some redesign, wouldn't need to be like that.
 
The mathematics of integers, reals and complex numbers don't change with
the times. If you want to include some support for division by zero
(other than tracking errors), you are no longer trying to approximate
real number arithmetic with your floating point.
 
 
> IEEE 754 also defines signaling and non-signaling forms, so it's at least
> incorporated into fp that the possibility of legitimate recovery exists,
> though it will trap to an OS-level handler.
 
No, NaNs are not there for recovery. They exist in IEEE to help track
errors and find bugs (such as dropping to a debugger when a signalling
NaN is generated), and to allow code to know that an incorrect
calculation has occurred. They are not of any use in trying to correct
the calculation or generate a correct output given incorrect input or an
incorrect algorithm.
 
> special cases without the extra overhead of trapping to the OS, noting
> the trap, redirecting to an app handler, returning to the OS, then
> finally returning back to the original instruction stream.
 
That's fine - I have nothing against such an idea. C++ supports it
manually:
 
double safediv(double x, double y) {
if (y == 0) throw std::overflow_error("Division by zero");
return x / y;
}
 
For your language, you would use casks, and you can make it automatic if
you like (as Java does). It adds a small run-time overhead to do the
checking, but it is your decision whether you want the feature or not.
 
>>> address it.
 
>> Lots of hardware has no efficient way of making such traps.
 
> That's true today. I'm talking about looking to the future.
 
I look to the future, and for every processor made that has efficient
traps on division by zero, there will be thousands made that don't have
such traps. There even will be thousands made that don't even have
instructions for division. And there is no reason why that should ever
change.
 
It is, of course, fine for you to say that your language will require
such hardware support in its target processors. That won't fly for C or
C++, but it's fine for /your/ language to make such choices.
 
>>> design, and support for both into my CAlive compiler.
 
>> In virtually every case, a division by 0 is a bug in the code.
 
> That's true today. :-) I'm talking about looking to the future. :-)
 
Again, basic mathematics won't change in the future. Unless you are
doing maths with structures (such as the Reimann sphere) that support
division by 0 in a consistent and sensible way, then dividing by zero is
usually a bug in the code. It might turn up due to incorrect input
(garbage in, garbage out) - an error in whatever is feeding the
algorithm, rather than in the algorithm itself. And NaNs can be a
convenient way of spotting this without having to explicitly check for
division by 0 in the code.
 
> within the context of a larger known formula, which must be broken out
> to into discrete operations, it can make sense, and in many cases it
> does" (or words to that effect).
 
No, I don't have to say that.
Real Troll <real.troll@trolls.com>: Oct 31 08:59AM -0400

On 29/10/2016 22:59, Stefan Ram wrote:
> undefined.«, C++ 2016, 5.6p4.
 
> Does it say anywhere that a division by zero /is/ allowed
> (is not undefined behavior) in floating-point divisions?
 
A number is a number whether an integer or a decimal number. Therefore,
division by zero is not defined and one should introduce error checking
to avoid this problem.
leigh.v.johnston@googlemail.com: Oct 31 06:08AM -0700

You are simply wrong. Division by zero is undefined in mathematics.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 31 06:28AM -0700

> You are simply wrong. Division by zero is undefined in mathematics.
 
You are stuck on one point, Leigh, and can't break past it. That doesn't
change the fact that there's more to the explanation of division by zero
than that one position.
 
If you pursue the truth, you'll come to realize that there's more than
you previously thought (about a great many things ... including faith in
Jesus Christ).
 
Best regards,
Rick C. Hodgin
David Brown <david.brown@hesbynett.no>: Oct 31 02:37PM +0100

> You are simply wrong. Division by zero is undefined in mathematics.
 
Please update Wikipedia, based on your new-found expertise in
mathematics. To get started, edit this page:
 
<https://en.wikipedia.org/wiki/Riemann_sphere#Arithmetic_operations>
 
Then move on to
<https://en.wikipedia.org/wiki/Projectively_extended_real_line>
 
<https://en.wikipedia.org/wiki/Wheel_theory> should be deleted altogether.
 
 
Those of us who know a little more mathematics, will continue to say
that division by zero is undefined for integers, real numbers, and any
other fields, as well as computer-based approximations to those fields -
but that division by zero /is/ defined for certain other mathematical
structures.
 
 
It is fine to say that you are never going to need these structures.
/I/ am highly unlikely to ever need them, despite knowing about them.
And most people will never know of or care about their existence. But
repeating your ignorance does not make you look any smarter.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 31 05:35PM

On 31/10/2016 13:37, David Brown wrote:
> /I/ am highly unlikely to ever need them, despite knowing about them.
> And most people will never know of or care about their existence. But
> repeating your ignorance does not make you look any smarter.
 
Those three "mathematical structures" are gibberish; yes the articles
should be deleted. Again: division by zero is undefined in kosher
mathematics.
 
/Flibble
Gareth Owen <gwowen@gmail.com>: Oct 31 05:56PM


> But in mathematics division by zero is undefined so you are talking
> bollocks.
 
Depends which field you're in. Real or complex numbers?
Yeah definitely undefined.
 
But mathematicians - devious bastards that we are - have created domains
in which there is a zero element with defined division.
 
The fact you don't know enough advanced mathematics to appreciate that
truth of that statement a shame; that you assert your ignorance in
denying is embarrassing.
Gareth Owen <gwowen@gmail.com>: Oct 31 05:57PM


> Those three "mathematical structures" are gibberish; yes the articles
> should be deleted. Again: division by zero is undefined in kosher
> mathematics.
 
Wow. That's ... Stucklesque.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 31 05:59PM

On 31/10/2016 17:56, Gareth Owen wrote:
 
> The fact you don't know enough advanced mathematics to appreciate that
> truth of that statement a shame; that you assert your ignorance in
> denying is embarrassing.
 
Nope. Anyone can make up any old bollocks in any field as is the case
here. Division is undefined, end of.
 
/Flibble
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 31 06:02PM

On 31/10/2016 17:57, Gareth Owen wrote:
>> should be deleted. Again: division by zero is undefined in kosher
>> mathematics.
 
> Wow. That's ... Stucklesque.
 
And whilst we are on this subject: there is no such thing as negative
zero in mathematics. IEEE floating point is wrong in including support
for negative zero.
 
/Flibble
Gareth Owen <gwowen@gmail.com>: Oct 31 06:11PM


> And whilst we are on this subject: there is no such thing as negative
> zero in mathematics
 
This is true (to the best of my knowledge). Stopped clocks, and all that.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 31 11:22AM -0700

On Monday, October 31, 2016 at 1:56:43 PM UTC-4, gwowen wrote:
> Yeah definitely undefined.
 
> But mathematicians - devious bastards that we are - have created domains
> in which there is a zero element with defined division.
 
It's worse than that:
 
1 + 2 + 3 + 4 ... = -1/12
https://www.youtube.com/watch?v=w-I6XTVZXww
 
> The fact you don't know enough advanced mathematics to appreciate that
> truth of that statement a shame; that you assert your ignorance in
> denying is embarrassing.
 
All truly advanced math people are obvious lunatics. It's so easy to
see from the nonsensical stuff they come up with. So, it's not fair
to judge Leigh on standards where they think an infinite sum of ever-
increasing positive integers is actually -1/12.
 
:-)
 
Best regards
Rick C. Hodgin
Melzzzzz <Melzzzzz@zzzzz.com>: Oct 31 06:25PM

> All truly advanced math people are obvious lunatics.
 
Bullshit. Math is rational science. You can't get more rational then in
math...
 
 
 
--
press any key to continue or any other to quit
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 31 11:28AM -0700

On Monday, October 31, 2016 at 2:26:05 PM UTC-4, Melzzzzz wrote:
> > All truly advanced math people are obvious lunatics.
> ... Math is rational science. You can't get more rational then in
> math...
 
Psssst. Hey... come over here, Melzzzzz. I'll let you in on a little
secret... I was kidding.
 
:-)
 
Best regards,
Rick C. Hodgin
Melzzzzz <Melzzzzz@zzzzz.com>: Oct 31 06:49PM


> Psssst. Hey... come over here, Melzzzzz. I'll let you in on a little
> secret... I was kidding.
 
>:-)
 
Oh!
 
 
--
press any key to continue or any other to quit
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 31 07:49PM +0100

On 31.10.2016 10:44, David Brown wrote:
> make sense within the mathematics directly supported by C and C++ -
> integer arithmetic, modulo arithmetic, and floating point approximations
> to reals and complex numbers.
 
Uhm, none of the above seems at all useful to me.
 
I once (1986) defined a kind of division by zero that was useful for
Dempster-Shafer evidence combination formulas. Essentially it treats A*B
as a multiset {A, B}, and then A/B is practically defined for B=0 by
allowing a negative number of a factor in a set. It all reduces to
simple operations on pairs for the cases of practical interest.
 
This allowed simple general code (it was in Modula-2) without
special-casing all over the place.
 
But there is no infinity in such a scheme, and I'd better mention, in
order to not give people wrong ideas, that apparently it can't
reasonably support addition or subtraction of pairs other than those
that have the same count of 0. So it's a scheme that is practical for
certain programming tasks, but as far as I can see not for mathematics.
Unless mathematicians can enjoy the elegance of the code.
 
The infinity of the Riemann sphere and of the whatever-projected real
line, seems to be nothing but a device to allow vertical lines to be
expressed as y = ax + b, with a as infinity. That "explains" why
-infinity = +ininity in such scheme: the vertical line can be viewed as
going up, or down, at will. But it's utter nonsense: it's a kludge, at a
high cost, to support a single case, for which there is no need.
 
So, I think Leigh is entirely right about the x/0 that yields infinity.
 
It's just idiocy. :)
 
 
Cheers!,
 
- Alf
Juha Nieminen <nospam@thanks.invalid>: Oct 31 08:15AM


>> How exactly would you make a less "rigid" GUI framework where you can
>> add new virtual functions to existing classes of the framework?
 
> I imagine this could be done via templates. CRTP?
 
Given that the standard committee dropped support for export templates,
and that no compiler supports them, meaning that the entire framework
(which, in the case of very large frameworks, could well consist of
hundreds of thousands of lines of code) would need to be in header files.
I shudder at the idea of how long that would take to compile, every
single time...
 
(Also, incidentally, and in case you were thinking of *actual* templated
virtual functions, they aren't possible.)
 
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Paavo Helde <myfirstname@osa.pri.ee>: Oct 31 11:20AM +0200

On 31.10.2016 10:15, Juha Nieminen wrote:
> hundreds of thousands of lines of code) would need to be in header files.
> I shudder at the idea of how long that would take to compile, every
> single time...
 
Yes, if something can be done does not mean it should be done.
 
> (Also, incidentally, and in case you were thinking of *actual* templated
> virtual functions, they aren't possible.)
 
No, I was thinking about regular overriding of virtual functions in
derived classes. But the critics here are most probably right that using
composition would have been cleaner and easier to implement than what
was effectively an attempt to mix two class hierarchies into one.
 
Cheers
Paavo
Cholo Lennon <chololennon@hotmail.com>: Oct 31 10:22AM -0300

On 10/29/2016 01:56 PM, JiiPee wrote:
 
>> For example, there is CFrameWnd::GetActiveView() which returns the
>> CView* pointer to the
 
> nice to see others also use MFC... I am not the onlly one.... from 1996 :)
 
I used it a lot in the nineties (even in 16 bits). I started to leave it
behind when WTL appeared. After 2004 I have never touched it again
(lucky me), so I can't believe people are still using it! (I know, I
know, software is like Highlander)
 
--
Cholo Lennon
Bs.As.
ARG
Mike Copeland <mrc2323@cox.net>: Oct 30 04:46PM -0700

In article <56udnaegcoTY64vFnZ2dnUU78YvNnZ2d@giganews.com>,
myfirstname@osa.pri.ee says...
 
> On 30.10.2016 23:44, Mike Copeland wrote:
> > I want to have multiple data value component types in a std::map
key.
> }
> } linkKey;
 
> HTH
 
It does (help): good answer.
To your first point, the compiler (VS 2013) produced many diagnostic
errors, and it wasn't reasonable to post them (or so I thought). Many
of the errors pointed into compiler runtime code, so I knew I was
violating something fundamental in the use of C++ container usage.
<sigh>
 
 
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
Juha Nieminen <nospam@thanks.invalid>: Oct 31 08:21AM

> of a struct type, so I could access the key's component data values
> without deconstructing a scalar data type value. The "key" is made up
> of 2 parts (a numeric year and a numeric value).
 
Either the key type needs to contain an operator<() (which compares in
a weakly ascending order), or you need to provide std::map with a
comparator that compares two key objects.
 
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

Sunday, October 30, 2016

Digest for comp.lang.c++@googlegroups.com - 25 updates in 5 topics

"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 30 01:49AM +0200

On 30.10.2016 00:46, Stefan Ram wrote:
> course, evaluating to "Inf" is subsumed by UB, but when the
> programmer has no guarantee for that result, it is not worth
> that much.
 
And there is the issue that both g++ and Visual C++ can be told to
ignore certain aspects of the IEEE 754 standard to gain more speed, in
which case they don't adjust `numeric_limits` accordingly.
 
I do know that they can ignore the semantics of NaN.
 
I'm not sure about infinities, but the short of it is, what you get
depends in practice not only on `numeric_limits`, but also on the
compiler and options employed, and this is very compiler-specific. :(
 
 
Cheers!,
 
- Alf
Marcel Mueller <news.5.maazl@spamgourmet.org>: Oct 30 04:43PM +0100

On 30.10.16 00.01, Mr Flibble wrote:
> Division by zero is undefined in C++ and undefined in mathematics so not
> much more needs to be said really.
 
According to the usual IEEE 754 float encoding 0./0. is the value NaN.
But C does not require IEEE floats neither NaN support.
 
So I would rephrase the question whether platforms which claim to have
IEEE float support (see numeric_limits) have defined behavior at 0./0.
 
 
Marcel
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 30 05:27PM

On 30/10/2016 15:43, Marcel Mueller wrote:
> But C does not require IEEE floats neither NaN support.
 
> So I would rephrase the question whether platforms which claim to have
> IEEE float support (see numeric_limits) have defined behavior at 0./0.
 
In mathematics dividing by zero is undefined ego you SHOULD NOT do it in
code so who cares what the result is?
 
/Flibble
Paavo Helde <myfirstname@osa.pri.ee>: Oct 30 07:51PM +0200

On 30.10.2016 19:27, Mr Flibble wrote:
 
>> So I would rephrase the question whether platforms which claim to have
>> IEEE float support (see numeric_limits) have defined behavior at 0./0.
 
> In mathematics dividing by zero is undefined
 
No, there are mathematics where this is well defined, for example
https://en.wikipedia.org/wiki/Projectively_extended_real_line
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 30 06:24PM

On 30/10/2016 17:51, Paavo Helde wrote:
 
>> In mathematics dividing by zero is undefined
 
> No, there are mathematics where this is well defined, for example
> https://en.wikipedia.org/wiki/Projectively_extended_real_line
 
Nonsense.
 
/Flibble
Paavo Helde <myfirstname@osa.pri.ee>: Oct 30 09:33PM +0200

On 30.10.2016 20:24, Mr Flibble wrote:
 
>> No, there are mathematics where this is well defined, for example
>> https://en.wikipedia.org/wiki/Projectively_extended_real_line
 
> Nonsense.
 
"Nonsense" is a word of no importance in mathematics. "Consistent" is, OTOH.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 30 12:57PM -0700

On Sunday, October 30, 2016 at 1:27:42 PM UTC-4, Mr Flibble wrote:
> > IEEE float support (see numeric_limits) have defined behavior at 0./0.
 
> In mathematics dividing by zero is undefined ego you SHOULD NOT do it in
> code so who cares what the result is?
 
Division by zero has case-by-case definitions where it's actual value would
be valid given the approaching limits from both sides. It has other cases
where it is invalid. And other cases where it's clearly +infinity,
-infinity, or the entire number line.
 
I think C and C++ have it wrong to disallow division by zero (or to enter
into UB when encountered). I think they should both define and allow for
hardware which traps the condition to allow explicit and specific code to
address it. On modern hardware that would be generic OS-level code which
can then signal an exception or some other application-defined handler for
those kinds of conditions. But I think more generally a new approach should
be taken such that real application code can be created to handle the division
by zero case, such that in various scenarios it can return a valid value. In
fact, it might even be worth definining the value so that it computes normally
when a hard value is known for a given formula, for example. But in the case
of not having that handler, then it would also fall back to a generic
division by zero handler.
 
I will incorporate these abilities into both integer and fp on my Arxoda CPU
design, and support for both into my CAlive compiler.
 
Best regards,
Rick C. Hodgin
David Brown <david.brown@hesbynett.no>: Oct 30 09:01PM +0100

On 30/10/16 19:24, Mr Flibble wrote:
 
>> No, there are mathematics where this is well defined, for example
>> https://en.wikipedia.org/wiki/Projectively_extended_real_line
 
> Nonsense.
 
No, it is not nonsense - it is perfectly reasonable mathematics.
 
However, it is not directly applicable here - standard floats in C++ do
not cover the kinds of numbers needed for mathematics on a projective
plane. So normal C++ floats should not need to support division by zero
any more than they should support the square root of negative numbers.
But it would be wrong to say that "in mathematics, taking the square
root of negative numbers is undefined" - it is merely undefined over the
real numbers.
David Brown <david.brown@hesbynett.no>: Oct 30 09:15PM +0100

On 30/10/16 20:57, Rick C. Hodgin wrote:
> be valid given the approaching limits from both sides. It has other cases
> where it is invalid. And other cases where it's clearly +infinity,
> -infinity, or the entire number line.
 
That's all true - but in simple arithmetic of real numbers (which is
what C++ standards-defined floats and doubles approximate), it is always
undefined.
 
You can write:
 
y = lim x->0 ( (sin x) / x )
 
y is then 1, even though you are taking a limit of a division by 0.
 
But you cannot find any "r" for which "r / 0" is 1. When you take any
real number r, and divide it by 0 over the set of real numbers, the
result mathematically is undefined.
 
All division by 0 with the mathematical systems supported directly by
C++ is mathematically undefined - it makes perfect sense for it to be
undefined in the language.
 
(Division by 0 /has/ a defined value in IEEE 754 floating point, giving
either a NaN or +/-Inf depending on the circumstances. But C and C++ do
not specify IEEE behaviour. An implementation may, if it wishes, give
division by 0 a defined behaviour - it is always free to give
definitions to thinks the standards leave undefined.)
 
> into UB when encountered). I think they should both define and allow for
> hardware which traps the condition to allow explicit and specific code to
> address it.
 
Lots of hardware has no efficient way of making such traps.
 
> On modern hardware that would be generic OS-level code which
> can then signal an exception or some other application-defined handler for
> those kinds of conditions.
 
Lots of systems don't have an OS - and certainly not one that wants to
bother with handling something that makes no sense in a program.
 
> by zero case, such that in various scenarios it can return a valid value. In
> fact, it might even be worth definining the value so that it computes normally
> when a hard value is known for a given formula, for example.
 
That's what strict IEEE compliance does - it gives a hard value (NaN or
+/-Inf) that you can test later. But that's up to an implementation to
decide - it is /not/ part of the standards.
 
> division by zero handler.
 
> I will incorporate these abilities into both integer and fp on my Arxoda CPU
> design, and support for both into my CAlive compiler.
 
In virtually every case, a division by 0 is a bug in the code. For some
types of code, it might be acceptable to continue calculations
regardless, and check for a NaN at the end of the string of operations -
perhaps that is more efficient than checking for 0 before attempting the
division. Compilers can support that. Making the compiler trap in some
clear way on division by zero can also be useful - it will help
programmers find their bugs faster, and that is always a good thing.
Again, nothing in the C or C++ standards prevents a compiler doing that.
 
But pretending it is possible to define a sensible numerical value for
division by 0 is just silly - it makes no sense mathematically, and is
of no use in code.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 30 08:36PM

On 30/10/2016 20:01, David Brown wrote:
> But it would be wrong to say that "in mathematics, taking the square
> root of negative numbers is undefined" - it is merely undefined over the
> real numbers.
 
But in mathematics division by zero is undefined so you are talking
bollocks.
 
/Flibble
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 30 09:39PM +0100

On 30.10.2016 20:33, Paavo Helde wrote:
 
>> Nonsense.
 
> "Nonsense" is a word of no importance in mathematics. "Consistent" is,
> OTOH.
 
I agree with Leigh, it's nonsense.
 
Defined as, makes no sense.
 
It seems to be self-consistent nonsense, but nonsense.
 
Sometimes people who make some unwarranted assertion, some fact that
isn't a fact or some conclusion that doesn't follow from anything, start
spouting techno-babble to defend it. Often the techno-babble is
self-consistent, in a way, but it's meaningless, irrelevant, of no
relevance other than associatively: it can convince associative
non-technical people reading the exchange. The projectively extended
real number line seems to be of that kind; call it math-babble.
 
 
Cheers!,
 
- Alf
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 30 09:40PM +0100

On 30.10.2016 21:01, David Brown wrote:
>>> https://en.wikipedia.org/wiki/Projectively_extended_real_line
 
>> Nonsense.
 
> No, it is not nonsense - it is perfectly reasonable mathematics.
 
Is it? What's it use then?
 
Cheers!,
 
- Alf
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 30 02:04PM -0700

On Sunday, October 30, 2016 at 4:15:49 PM UTC-4, David Brown wrote:
 
> But you cannot find any "r" for which "r / 0" is 1. When you take any
> real number r, and divide it by 0 over the set of real numbers, the
> result mathematically is undefined.
 
The idea is that the software developer working on the larger algorithm,
which in and of itself must then be broken down into many constituent
parts, would be able to apply something like a cask to indicate that in
a particular portion, this should be the result should it encounter a
division by zero condition.
 
> All division by 0 with the mathematical systems supported directly by
> C++ is mathematically undefined - it makes perfect sense for it to be
> undefined in the language.
 
Yes, because that's the way it is today. I'm suggesting it shouldn't be
like that, and with some redesign, wouldn't need to be like that.
 
We live in the age of advanced and mature design toolsets which would
allow for us to do things more easily in the 2010s that we couldn't do
in the 1990s.
 
> not specify IEEE behaviour. An implementation may, if it wishes, give
> division by 0 a defined behaviour - it is always free to give
> definitions to thinks the standards leave undefined.)
 
IEEE 754 also defines signaling and non-signaling forms, so it's at least
incorporated into fp that the possibility of legitimate recovery exists,
though it will trap to an OS-level handler.
 
My proposal is that it should be to a local code handler so that a
developer working on a particular problem could have it handled in the
special cases without the extra overhead of trapping to the OS, noting
the trap, redirecting to an app handler, returning to the OS, then
finally returning back to the original instruction stream.
 
> > hardware which traps the condition to allow explicit and specific code to
> > address it.
 
> Lots of hardware has no efficient way of making such traps.
 
That's true today. I'm talking about looking to the future.
 
 
> That's what strict IEEE compliance does - it gives a hard value (NaN or
> +/-Inf) that you can test later. But that's up to an implementation to
> decide - it is /not/ part of the standards.
 
There are defined traps as well which are maskable (and typically masked)
which allow those values to come through. However, what I see being
needed is the next level above that. Such an ability gives developers
more control over the machine for those times when that control would
be beneficial.
 
 
> > I will incorporate these abilities into both integer and fp on my Arxoda CPU
> > design, and support for both into my CAlive compiler.
 
> In virtually every case, a division by 0 is a bug in the code.
 
That's true today. :-) I'm talking about looking to the future. :-)
 
 
> But pretending it is possible to define a sensible numerical value for
> division by 0 is just silly - it makes no sense mathematically, and is
> of no use in code.
 
You must say, "It is not applicable in raw fundamental operations, but
within the context of a larger known formula, which must be broken out
to into discrete operations, it can make sense, and in many cases it
does" (or words to that effect).
 
Best regards,
Rick C. Hodgin
Paavo Helde <myfirstname@osa.pri.ee>: Oct 30 11:26PM +0200

On 30.10.2016 22:40, Alf P. Steinbach wrote:
 
>>> Nonsense.
 
>> No, it is not nonsense - it is perfectly reasonable mathematics.
 
> Is it? What's it use then?
 
Why should there be any use? That's not the point of mathematics.
Besides, you never know what may appear useful in the future.
 
Riemann manifolds were also considered absolutely useless a couple of
centuries ago, not to speak about number theory (aka cryptography, these
days).
 
See e.g.
"http://mathoverflow.net/questions/116627/useless-math-that-became-useful"
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Oct 30 10:37PM +0100

On 30.10.2016 22:04, Rick C. Hodgin wrote:
> special cases without the extra overhead of trapping to the OS, noting
> the trap, redirecting to an app handler, returning to the OS, then
> finally returning back to the original instruction stream.
 
Check out C#'s `checked` and `unchecked`. IIRC.
 
 
Cheers!,
 
- Alf
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 30 04:07PM -0700

On Sunday, October 30, 2016 at 5:39:18 PM UTC-4, Alf P. Steinbach wrote:
> > the trap, redirecting to an app handler, returning to the OS, then
> > finally returning back to the original instruction stream.
 
> Check out C#'s `checked` and `unchecked`. IIRC.
 
As I understand it, C# is a managed language. The conditions it provides
for are signaled to it, as through the flow circuit I outlined: hardware
to OS, OS to manager, manager to handler, handler to manager, manager to
OS, OS back to hardware, which then continues on with the original
instructions.
 
What I propose is new hardware, and an extension through something I call
casks (which are arbitrary injections of source code in the middle of
otherwise syntactically correct statements), which handle local cases of
that condition when it is encountered, and directly in local code without
the route through the OS and back.
 
Best regards,
Rick C. Hodgin
Mike Copeland <mrc2323@cox.net>: Oct 30 02:44PM -0700

I wabt to have multiple data value component types in a std::map key.
The code below doesn't compile. My intent is to use a std::map key
of a struct type, so I could access the key's component data values
without deconstructing a scalar data type value. The "key" is made up
of 2 parts (a numeric year and a numeric value).
If I construct a std::string value of these components and use that
data type the compiler accepts it.
It won't allow a "struct" data type for a key value.
Is there a way to do this? TIA
[e.g.]
struct LinkKeyType
{
short nYear;
int nBib;
} linkKey;
struct linkStruct
{
char entCode;
int nAge;
std::string nameStr;
} link;
std::map<LinkKeyType, linkStruct> bibMap;
std::map<LinkKeyType, linkStruct>::iterator lIter;
...
link.entCode = 'M', link.nAge = 45;
link.nameStr = "George Washington";
linkKey.nBib = 123, linkKey.nYear = 88;
bibMap[linkKey] = link;
 
 
 
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
Paavo Helde <myfirstname@osa.pri.ee>: Oct 31 12:37AM +0200

On 30.10.2016 23:44, Mike Copeland wrote:
> link.nameStr = "George Washington";
> linkKey.nBib = 123, linkKey.nYear = 88;
> bibMap[linkKey] = link;
 
Yet again you fail to provide the error messages for "doesn't compile",
so be prepared for "garbage in, garbage out".
 
Still, the most obvious problem is that your struct does not have a
less-than comparison operator which is needed by std::map in order to
put the values in order. Add:
 
struct LinkKeyType
{
short nYear;
int nBib;
bool operator<(const LinkKeyType& b) const {
return nYear<b.nYear || (nYear==b.nYear && nBib<b.nBib);
}
} linkKey;
 
HTH
ram@zedat.fu-berlin.de (Stefan Ram): Oct 30 09:13PM

>non-technical people reading the exchange. The projectively extended
>real number line seems to be of that kind; call it math-babble.
 
One can indeed extend the set of real numbers by another
point ¤ that is larger than any other real number, which
has some applications, and this alone will not lead to
contradictions ("compactification of the real line").
 
We still /cannot/, however, identify this value ¤ with x/0
(for x != 0) and apply all traditional rules to it, because
then, by multiplication with 0, 1/0 = 2/0 would imply 1 = 2.
woodbrian77@gmail.com: Oct 29 06:45PM -0700

I think this hiring "push" goes beyond banking.
 
http://www.bloomberg.com/news/articles/2016-10-28/wall-street-coders-wanted-elite-college-degrees-not-necessary
 
Is there any chance this will carry over to this newsgroup?
I could bring up some of the topics and questions that I've
posted previously that I would like more help with.
 
 
Brian
Ebenezer Enterprises - So far G-d has helped us.
http://webEbenezer.net
woodbrian77@gmail.com: Oct 29 06:50PM -0700

On Friday, October 28, 2016 at 1:52:51 PM UTC-5, Chris Vine wrote:
 
Please pray for my country (USA) and please don't swear here.
 
Brian
Ebenezer Enterprises
http://webEbenezer.net
asetofsymbols@gmail.com: Oct 30 12:35AM -0700

Us has problem in all insurances they obligate people, if they have to pay the doctor pay the doctor not the insurance...
Chris Vine <chris@cvine--nospam--.freeserve.co.uk>: Oct 30 01:14PM

On Sat, 29 Oct 2016 18:50:57 -0700 (PDT)
> On Friday, October 28, 2016 at 1:52:51 PM UTC-5, Chris Vine wrote:
 
> Please pray for my country (USA) and please don't swear here.
 
Please take your dog shit somewhere else Brian. Go to a newsgroup
concerned with prayer, politics or the USA.
"Öö Tiib" <ootiib@hot.ee>: Oct 30 09:42AM -0700

On Sunday, 30 October 2016 15:14:37 UTC+2, Chris Vine wrote:
 
> > Please pray for my country (USA) and please don't swear here.
 
> Please take your dog shit somewhere else Brian. Go to a newsgroup
> concerned with prayer, politics or the USA.
 
I think sci.electronics.design is a technical group where they more
often discuss politics, religion and other such dog shit than electronics.
"Öö Tiib" <ootiib@hot.ee>: Oct 30 05:30AM -0700

On Saturday, 29 October 2016 09:57:02 UTC+3, Paavo Helde wrote:
 
> > How exactly would you make a less "rigid" GUI framework where you can
> > add new virtual functions to existing classes of the framework?
 
> I imagine this could be done via templates. CRTP?
 
CRTP is actually slightly more rigid (but also more efficient) than
virtual functions. It is compile-time polymorphism and so dynamic
dispatch does not work with it. It can work well in GUI because
lot of GUI has quite rigid and non-dynamic design.
 
There are number of ways how to achieve dynamic polymorphism without
virtual functions in C++. One example: Adding something that will be
dynamically dispatched to group of classes can be done with visitors.
Other example: Adding something that is dynamically dispatched to
individual objects can be done with function objects.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

Saturday, October 29, 2016

Digest for comp.lang.c++@googlegroups.com - 19 updates in 7 topics

"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 28 06:23PM -0700

Watch the new series "The Encounter" on PureFlix:
 
Series: http://www.pureflix.com/series?=The+Encounter
 
Episode 1: http://www.pureflix.com/videos/787629635622/watch
Episode 2: http://www.pureflix.com/videos/787800643719/watch
 
Take a break from high drama shows, and see the contrast in peace.
 
Best regards,
Rick C. Hodgin
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 28 06:53PM -0700

You can watch it on Xbox One. Use the Edge browser and navigate
to the main page:
 
http://www.pureflix.com
 
Start your free trial, or log in. See the original 2010 movie and
some other good ones:
 
The Encounter (2010 Movie)
Amazing Love
The End of the Harvest
God of Wonders
KJB The Book that Changed the World
The Book of Daniel
 
Best regards,
Rick C. Hodgin
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 29 02:12PM -0700

In Jesus, you'll find forgiveness for what you've done, peace for
your soul, a new calm in your life, comfort in the storm, and
the security of knowing where you'll go when you die.
 
Going to church doesn't save you. Only Jesus can save you.
But by going to church you learn about Jesus, about spiritual
things, about prayer, the real nature of why people behave
the way they do, and how to pray for them to fight their true
enemies, and how to recognize it is the people who are your
goal, and that the real enemy has them, even though it seems
they are acting within their own nature, that enemy opposes
atop them, influencing them toward their harmful actions.
 
Jesus will give you new life to be able to understand all of
this, and to lead you in service to Him in this world.
 
It starts by coming to Him and asking Him to forgive you of
your sin. This can be done anywhere, but it's often done at
a church. Asking forgiveness doesn't cleanse you, but the
true sincerity of your heart in asking is known to God, and all
who truly ask forgiveness for real are saved.
 
He will then do the rest in your life, but you must also do
your part. By seeking the truth in all things, He guides you.
 
Go to church. Ask questions. And when you feel conviction
in your heart and you're ready, then ask forgiveness from Jesus
and receive eternal life.
 
I look forward to hearing your testimony, and seeing you in
Heaven.
 
Best regards,
Rick C. Hodgin
gazelle@shell.xmission.com (Kenny McCormack): Oct 29 11:05PM

In article <8a009933-061f-4831-b5da-1b280276a13d@googlegroups.com>,
>In Jesus, you'll find forgiveness for what you've done, peace for
>your soul, a new calm in your life, comfort in the storm, and
>the security of knowing where you'll go when you die.
 
Creepy Freakazoid.
 
>goal, and that the real enemy has them, even though it seems
>they are acting within their own nature, that enemy opposes
>atop them, influencing them toward their harmful actions.
 
Beyond hope.
 
>Jesus will give you new life to be able to understand all of
>this, and to lead you in service to Him in this world.
 
That does not compute.
 
>a church. Asking forgiveness doesn't cleanse you, but the
>true sincerity of your heart in asking is known to God, and all
>who truly ask forgiveness for real are saved.
 
Somebody needs to get back on their meds...
 
>He will then do the rest in your life, but you must also do
>your part. By seeking the truth in all things, He guides you.
 
Make America Great Again.
 
>Go to church. Ask questions. And when you feel conviction
>in your heart and you're ready, then ask forgiveness from Jesus
>and receive eternal life.
 
Goofball.
 
>I look forward to hearing your testimony, and seeing you in
>Heaven.
 
Loonball.
 
>Best regards,
>Rick C. Hodgin
 
Off Topic.
 
 
--
"Only a genius could lose a billion dollars running a casino."
"You know what they say: the house always loses."
"When life gives you lemons, don't pay taxes."
"Grab 'em by the p***y!"
ram@zedat.fu-berlin.de (Stefan Ram): Oct 29 09:59PM

C++ says:
 
»If during the evaluation of an expression, the result
is not mathematically defined or not in the range of
representable values for its type, the behavior is
undefined.«, C++ 2016, 5p4 and
 
»If the second operand of / or % is zero the behavior is
undefined.«, C++ 2016, 5.6p4.
 
Does it say anywhere that a division by zero /is/ allowed
(is not undefined behavior) in floating-point divisions?
ram@zedat.fu-berlin.de (Stefan Ram): Oct 29 10:46PM

>Does it say anywhere that a division by zero /is/ allowed
>(is not undefined behavior) in floating-point divisions?
 
In practice, it seems to be true what is written in the Web:
 
»if std::numeric_limits<T>::is_iec559 == true, which it
normally is for T = float and T = double, the behavior
is overridden by IEC 559 aka IEEE 754«,
 
however, the standard does nowhere say that it does not have
UB anymore in this case (as far as I can [not ]find it). Of
course, evaluating to "Inf" is subsumed by UB, but when the
programmer has no guarantee for that result, it is not worth
that much.
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 29 03:15PM -0700

On 10/28/2016 2:28 PM, Jerry Stuckle wrote:
 
>> :^)
 
> Again having absolutely nothing to do with electrical charges. But it
> seems trying to change the topic is a favorite pastime of yours.
 
Well, you can create an image resembling a dipole... But, so what, wrt
changing topic, yes, I do suffer from that problem!
 
Sorry.
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 29 03:15PM -0700

On 10/28/2016 2:27 PM, Jerry Stuckle wrote:
 
>> ;^)
 
> Which has absolutely nothing to do with electrical charges. But once
> again you try to change the subject.
 
Sorry.
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 29 03:17PM -0700

On 10/28/2016 2:28 PM, Jerry Stuckle wrote:
 
>> :^)
 
> Again having absolutely nothing to do with electrical charges. But it
> seems trying to change the topic is a favorite pastime of yours.
 
FWIW, Hummm.. The flow of gravity wrt mass points, seems to flow in
opposite directions wrt the flow of electrical charges. The arrows show
flow direction.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 29 11:01PM +0100

On 29/10/2016 22:59, Stefan Ram wrote:
> undefined.«, C++ 2016, 5.6p4.
 
> Does it say anywhere that a division by zero /is/ allowed
> (is not undefined behavior) in floating-point divisions?
 
Division by zero is undefined in C++ and undefined in mathematics so not
much more needs to be said really.
 
/Flibble
Juha Nieminen <nospam@thanks.invalid>: Oct 29 05:27AM

> So it appears he has in mind some rigid GUI frameworks where one cannot
> add their own virtual functions in correct place. In this situation
> dynamic_cast appears in principle as a way to emulate virtual functions.
 
How exactly would you make a less "rigid" GUI framework where you can
add new virtual functions to existing classes of the framework?
 
C++ doesn't offer a syntax to add new functions to an existing class,
without modifying the source code of that class (which requires
recompiling said class because it eg. changes its vtable.) It wouldn't
even be able to offer such syntax because of that requirement. (If the
implementation of the class is in a precompiled object/library, there's
no way to "recompile" it with your added virtual functions.)
 
In some other languages (such as Objective-C) it is actually possible
to add new methods to a class, even if you don't have access to its
source code (and all you have is a precompiled object/library file).
But the mechanisms by which this done is rather different than in C++.
 
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---
Paavo Helde <myfirstname@osa.pri.ee>: Oct 29 09:56AM +0300

On 29.10.2016 8:27, Juha Nieminen wrote:
>> dynamic_cast appears in principle as a way to emulate virtual functions.
 
> How exactly would you make a less "rigid" GUI framework where you can
> add new virtual functions to existing classes of the framework?
 
I imagine this could be done via templates. CRTP?
Dombo <dombo@disposable.invalid>: Oct 29 12:30PM +0200

Op 28-Oct-16 om 23:54 schreef Richard:
> that everything is derived from CObject and we have a large
> monolithic framework. ATL also dates from the 90s but uses a
> different philosophy for class hierarchies.
 
It is not just different philosophy but also constraints they had to
deal with at the time. MFC is from the early nineties when the Microsoft
C++ compiler supported little more than C with classes (no templates, no
exceptions, no standard library), and the framework was still targeting
16-bit Windows running on 386 processors. ATL is from the late nineties
when the C++ dialect understood by the Microsoft compiler of that era
had much more in common with what we would consider C++ today.
 
As far as everything being derived from a common "object" class; this is
not unique to MFC, you see it also in Python, Java, C#...etc, where the
"object" class is roughly the equivalent of a void*.
 
> be the best vehicle for reuse. Inheritance for reuse is way overdone
> in any language supporting inheritance: JavaScript, Java, C#, C++,
> etc.
 
Having a common base class for all classes is partially motivated by the
limitations of these languages. For example Java and C# do not support
templates and originally did not support generics (a sort of a dumbed
down variation of templates). So for example to have reusable container
classes it helps to have everything derived from a single base class.
 
 
> If we don't stop to consider the design philosophy of the frameworks
> we're using or the design principles involved when we write code, we
> aren't working smarter, we're just working harder.
 
The question is what were the motivations for a framework to do things
in a certain way, and if they do still apply. In case of MFC many of its
design choices can be explained if you look at what they had to work
with at the time (a very limited subset of the C++ language as we know
it today, targeting slow hardware), however most of the choices made
back then no longer make sense today. It is disappointing to see that
today the most popular C++ GUI frameworks (Qt, WxWidgets) still clearly
have their roots in the nineties.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 29 12:30PM +0100

On 29/10/2016 11:30, Dombo wrote:
> back then no longer make sense today. It is disappointing to see that
> today the most popular C++ GUI frameworks (Qt, WxWidgets) still clearly
> have their roots in the nineties.
 
Have you actually looked at WxWidgets? It is basically a rehash of MFC.
Avoid.
 
/Flibble
Dombo <dombo@disposable.invalid>: Oct 29 01:46PM +0200

Op 29-Oct-16 om 13:30 schreef Mr Flibble:
>> have their roots in the nineties.
 
> Have you actually looked at WxWidgets? It is basically a rehash of MFC.
> Avoid.
 
I have, hence my comment. The only advantage I see WxWidgets has
compared to MFC is that it cross-platform, other that that it appears to
suck just as badly as MFC.
JiiPee <no@notvalid.com>: Oct 29 05:56PM +0100

On 28/10/2016 20:42, Paavo Helde wrote:
 
> For example, there is CFrameWnd::GetActiveView() which returns the
> CView* pointer to the
 
nice to see others also use MFC... I am not the onlly one.... from 1996 :)
Paavo Helde <myfirstname@osa.pri.ee>: Oct 30 12:27AM +0300

On 29.10.2016 19:56, JiiPee wrote:
 
>> For example, there is CFrameWnd::GetActiveView() which returns the
>> CView* pointer to the
 
> nice to see others also use MFC... I am not the onlly one.... from 1996 :)
 
s/use/succumb/ ;-)
"Chris M. Thomasson" <invalid@invalid.invalid>: Oct 28 08:00PM -0700

On 10/28/2016 9:17 AM, red floyd wrote:
 
>> Keep in mind, IBM lawyers might be bigger than yours?
 
>> Yikes! Shudder....
 
> As the late, unlamented SCO (as opposed to Santa Cruz) learned....
 
No SHI%! Man... Joe Seigh, former IBM guru, knows a lot about that mess.
 
I just want to be able to use a Proxy Collector, with out getting my as%
and ball% sued at the same damn time!
 
;^O
Lynn McGuire <lynnmcguire5@gmail.com>: Oct 28 09:16PM -0500

"Modern C++ Features – User-Defined Literals"
http://arne-mertz.de/2016/10/modern-c-features-user-defined-literals/
 
"User-defined literals are a convenient feature added in C++11."
 
"C++ always had a number of built-in ways to write literals: Pieces of source code that have a specific type and value. They are part
of the basic building blocks of the language:"
 
Interesting.
 
Lynn
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.