Wednesday, March 14, 2018

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

Nikki Locke <nikki@trumphurst.com>: Mar 14 11:23PM

Available C++ Libraries FAQ
 
URL: http://www.trumphurst.com/cpplibs/
 
This is a searchable list of libraries and utilities (both free
and commercial) available to C++ programmers.
 
If you know of a library which is not in the list, why not fill
in the form at http://www.trumphurst.com/cpplibs/cppsub.php
 
Maintainer: Nikki Locke - if you wish to contact me, please use the form on the website.
Gareth Owen <gwowen@gmail.com>: Mar 14 07:08AM

>> a belief "almost blasphemous". But Rick would tell you they're the
>> wrong sort of Christian, because they're not the mouth-breathing redneck kind.
 
> The Vatican calls their telescope "Lucifer." You do the math.
 
No, they don't. Their telescope is called VATT (Vatican Advanced
Technology Telescope). LUCIFER is in a building next door.
 
Another lie from the servant of the Prince of Lies.
leigh.v.johnston@googlemail.com: Mar 14 03:58AM -0700

If light was slower we would be able to observe even less if the universe was only 6000 years old. So given that the speed of light in a vacuum is a constant and the maximum speed it can be please explain how if the universe is only 6000 years old we can observe things further than 6000 light years away.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Mar 14 03:59AM -0700

On Wednesday, March 14, 2018 at 3:08:54 AM UTC-4, gwowen wrote:
 
> No, they don't. Their telescope is called VATT (Vatican Advanced
> Technology Telescope). LUCIFER is in a building next door.
 
> Another lie from the servant of the Prince of Lies.
 
It was a mistake, but it was not a lie, Mr. Prosecutor. There is
a difference.
 
--
Rick C. Hodginn
leigh.v.johnston@googlemail.com: Mar 14 02:00PM -0700

You seem to be avoiding answering my question Rick C. Hodgin. Speed of light mate.
 
#atheism
legalize+jeeves@mail.xmission.com (Richard): Mar 14 03:41PM

[Please do not mail me a copy of your followup]
 
Lynn McGuire <lynnmcguire5@gmail.com> spake the secret code
>comsplgr.h: virtual ObjPtr * dataTransferItemsToDIIW (int key) override;
>crudegro.h: virtual ObjPtr * dataTransferItemsToDIIW (int key) override;
 
>datagrou.h: virtual ObjPtr * dataTransferItemsToDIIW (int key);
 
Presumably this is the base class from which others derive?
 
>streamgr.h: virtual ObjPtr * dataTransferItemsToDIIW (int key) override;
>tankgroup.h: virtual ObjPtr * dataTransferItemsToDIIW (int key) override;
>valvegro.h: virtual ObjPtr * dataTransferItemsToDIIW (int key) override;
 
I see you are on Windows. If you use ReSharper for C++, the latest
version has clang-tidy integration and can apply the "use override"
quick fix individually, on a whole file, or on a whole project/solution.
 
There is also a free "Clang Power Tools" extension that can run
clang-tidy on your code. I have not used that tool, however.
 
If you use clang-tidy to automatically apply the override keyword, you
may be surprised to see that it adds override to your virtual
destructors. There is debate about the usefulness of adding the
override keyword in this case. See
<https://bugs.llvm.org/show_bug.cgi?id=30397>
 
It also drops the "virtual" keyword on overridden methods because it
is redundant. You can't override a non-virtual method and adding
override to a method in a derived class for which there is no matching
virtual base class method is a compile error.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Lynn McGuire <lynnmcguire5@gmail.com>: Mar 14 01:57PM -0500

On 3/14/2018 10:41 AM, Richard wrote:
> is redundant. You can't override a non-virtual method and adding
> override to a method in a derived class for which there is no matching
> virtual base class method is a compile error.
 
ObjPtr -> DataGroup -> NodeGroup -> StreamGroup
-> EquipGroup -> ComPreGroup
-> ComSplGroup
-> ...
 
Yes, DataGroup is the base class for that particular method.
 
Thanks,
Lynn
"James R. Kuyper" <jameskuyper@verizon.net>: Mar 14 10:02AM -0400

I was a bit tired when I wrote that post, and made a number of mistakes
which I'm now correcting:
 
On 03/09/2018 03:06 PM, James Kuyper wrote:
 
>> With some other compilers, including Xcode and Clion , var will contain the value 0 after the operation and the 'i' will have been swallowed up in the operation as well. In other words, the 'i' will no longer be in the cin buffer. Not sure about the error state of the cin object after the operation.
 
>> Does the C++ language specify what the result should be? Could both results be "correct"?
 
> Yes, though figuring out what the specification means gets complicated.
 
I just realized that you asked two questions, and my "Yes" applied only
to the first one. The answer to the second question is implied by the
rest of my response - it's "No".
 
...
The following citations from section 22 are actually from section 25:
 
> Note that 'i' is not allowed by any of the conversion specifiers, so it
> is permitted only when using a locale which specifies 'i' as the
> thousands separator :-).
 
At this point, you might be asking "what conversion specifier?", since I
dropped the paragraph explaining that point. 22.4.2.1.2p3 describes the
behavior in terms of the following example code:
 
fmtflags flags = str.flags();
fmtflags basefield = (flags & ios_base::basefield);
fmtflags uppercase = (flags & ios_base::uppercase);
 
Tables 73 specifies the corresponding <cstdio> scanf() conversion
specifier: if basefield is oct, hex, or 0, then the specifier is "%o",
"%X", or "%i" respectively. The only other valid value for basefield is
dec, in which case the fact that var is signed means that the specifier
is "%d". do_get() is not actually defined as calling scanf(). Instead:
 
> function strtoll(). At this point, you have to switch standards to get a
> complete description of the process, but you don't need that much detail
> for this question. For this input, strtoll() should set lval to 12345.
 
scanf() and num_get::do_get() are both described as calling strtoll() -
the conversion specifiers determine which base scanf() passes to
strtoll(): 8, 16, 0, and 10 for the specifiers mentioned above, in that
order. The implication of table 73 is that do_get() must do the same.
legalize+jeeves@mail.xmission.com (Richard): Mar 13 02:06PM

[Please do not mail me a copy of your followup]
 
Getting help from your development environment for renaming
identifiers can be a huge productivity boost. It lets you quickly and
easily improve the names of things in your code. In this post, I'll
review two automatic renaming tools for C++ in Visual Studio: Visual
Studio 2017 Community Edition 15.5.7 and ReSharper for C++ 2017.3.2.
 
<https://legalizeadulthood.wordpress.com/2018/03/10/c-rename-shootout-visual-studio-2017-vs-resharper-for-c/>
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
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.

No comments: