Wednesday, December 13, 2017

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

legalize+jeeves@mail.xmission.com (Richard): Dec 07 08:38PM

[Please do not mail me a copy of your followup]
 
Marcel Mueller <news.5.maazl@spamgourmet.org> spake the secret code
>> newsgroup an acceptable alternative to an unmoderated one - but I gather
>> that this would require a team of moderators working in coordinated shifts.
 
>Ack. You just argued why I unsubscribed from all moderated groups.
 
Of course reading the moderated group is totally up to the individual.
 
Me, I'm going to have it worse, because now I will have to see all
those junk posts as a moderator :)
 
"Time to take one for the team."
--
"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>
Gareth Owen <gwowen@gmail.com>: Dec 08 05:11PM


>> I do not post religious messages to moderated lists. You can verify
 
> You conveniently snipped part of that post so I will repeat the
> message here:
 
Also, doesn't Rick's restraint in that regard offer evidence that he
knows that what he's doing is wrong? Shouldn't someone who truly
believe they were doing God's work spam everywhere equally strongly?
Intelli2 <intelli2@mama.com>: Dec 08 12:43PM -0500

Hello...
 
 
Transactional memory pros and cons from ACM Queue:
 
"We observed that the TM programming model itself, whether implemented
in hardware or software, introduces complexities that limit the expected
productivity gains, thus reducing the current incentive for migration to
transactional programming and the justification at present for anything
more than a small amount of hardware support."
 
Read more here:
 
https://insidehpc.com/2008/12/transactional-memory-pro-and-con/
 
 
This is why my inventions that are my scalable algorithms such as
my C++ Synchronization Objects Library etc. that i am thinking to sell
to Embarcadero technologies or Microsoft are still very useful.
 
 
 
Thank you,
Amine Moulay Ramdane.
Juha Nieminen <nospam@thanks.invalid>: Dec 07 08:06AM

> software. However for majority of software it does not make any
> sense. Same is perhaps with several other things like with database
> support or with networking support.
 
Maybe they should make a *separate* standard for such a system.
A compiler can implement it as a library or not. (If a compiler
does implement it, it should adhere strictly to the standard,
of course.) But keep it separate from the main C++ standard.
David Brown <david.brown@hesbynett.no>: Dec 07 09:03AM +0100

On 07/12/17 07:50, Öö Tiib wrote:
> software. However for majority of software it does not make any
> sense. Same is perhaps with several other things like with database
> support or with networking support.
 
There can be no way to make a windowing user interface library that
pleases everyone. C++ stretches from massive multi-processing systems
to tiny microcontrollers, and screen usage stretches from multiple
synchronised high-resolution screens in a flight simulator to a e-ink
watch display. The range is too great - a standard solution would be
"one size fits nobody", not "one size fits all".
 
If something can be done to modernise and standardise common toolkits,
and maybe form a common basis and core, that might be practical.
Instead of every toolkit having its own string class, for example, get
them all to use utf-8 in std::string. Move them from their old
containers to standard C++ containers. And so on.
 
 
> I would like standard modules support. Had there been standard way
> to incorporate modules into our software then such things could be
> easily made as separate standards about separate modules.
 
Modules would be good. Other things that need finished off and put in
the standard are Concepts and Ranges. Coroutines are another potential
big step (these require a lot more run-time support, but offer a very
different way of structuring code). Then there are other minor but
useful building blocks like the library fundamentals, concurrency and
parallelism TS's.
 
These are all fundamentals for C++. Something like windowing support
(and networking, filesystems, etc.) are outer layers - these can be made
independently. The standards should concentrate on the fundamental parts.
 
The real biggie is metaclasses. That is still at the idea and
brain-storming stage - but assuming the key people can get a consistent,
simple yet flexible solution (and it is looking that way), then I hope
the C++ folks put a great deal of emphasis on these.
legalize+jeeves@mail.xmission.com (Richard): Dec 06 11:19PM

[Please do not mail me a copy of your followup]
 
Lynn McGuire <lynnmcguire5@gmail.com> spake the secret code
 
>1,605 pages ! ! !
 
>I would still like to see a standard windowing user interface library.
 
...presumably because you want to see another 1500 pages added to the
standard?
--
"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>
Chris Ahlstrom <OFeem1987@teleworm.us>: Dec 07 05:43AM -0500

Daniel wrote this copyrighted missive and expects royalties:
 
> On Wednesday, December 6, 2017 at 6:09:51 PM UTC-5, Lynn McGuire wrote:
 
>> I would still like to see a standard windowing user interface library.
 
> I'd settle for a date and a decimal class.
 
Boost!?
 
--
Q: Where's the Lone Ranger take his garbage?
A: To the dump, to the dump, to the dump dump dump!

Q: What's the Pink Panther say when he steps on an ant hill?
A: Dead ant, dead ant, dead ant dead ant dead ant...
Melzzzzz <Melzzzzz@zzzzz.com>: Dec 07 05:39AM

> file-system library derived from Boost, and other additions."
 
> 1,605 pages ! ! !
 
> I would still like to see a standard windowing user interface library.
 
That is pretty difficult as if this can be implemented portably.
 
 
--
press any key to continue or any other to quit...
Ian Collins <ian-news@hotmail.com>: Dec 08 10:55AM +1300

On 12/08/2017 10:46 AM, Jorgen Grahn wrote:
 
> Does someone has anything to say about the /actual/ C++17? What
> features will I use the most when I get around to upgrading, in a few
> years?
 
For us it's a bit of dilemma: use the gcc 6.3 based ARM SDK we have been
testing for a couple of months or start again with 7.2 to get C++17...
 
Just like when C++11 dropped, it'll take a while to find the new bits
that are really useful day to day. Today I tidied up some tool code by
using the return value form emplace_back, so the journey has begun :)
 
--
Ian.
David Brown <david.brown@hesbynett.no>: Dec 07 02:07PM +0100

On 07/12/17 12:56, Öö Tiib wrote:
> immediate feedback to user that input was recognized. So making
> standard windowing interface that takes it all into account would
> be fun.
 
Yes, but it also makes it even less suitable for being a part of
standard C++.
 
It would make a lot more sense to have this a separate project, outside
of standard C++. The kinds of things you want here are very different
from what you want in the main standards - you want fast moving projects
that add support for new features in common systems, new hardware, new
fads. You need to support a massive range of features - image types, 3D
systems, fonts, widgets, events, etc. There are several very different
ways of handling things - callbacks, event loops, messaging, etc. Some
people will want small and limited systems, others will want big and
feature-filled systems. So you might want more than one separate
project here - again not something you would want in the C++ standard
library.
 
Oh, wait - we already have this. QT, wxWidgets, GTK, etc.
 
 
> Everybody would love that but the C++ committee will never start to
> push utf-8. Likes of microsoft and qt are too glued to their legacy
> and so will reject all sanity.
 
QT are coming round to UTF-8. But it is not easy to change history -
compatibility with previous versions is important, and changes must be
gradual. (The same applies to MS, I think.)
 
 
> I am not sure of those generics of generics like Concepts and Metaclasses.
> These can bring some uniformity but these can also bring unneeded
> complexities and preliminary pessimizations.
 
I can't see how either of these might be pessimisations. They will both
greatly simplify the way classes and templates are written. Concepts
don't give you anything more or less than you could write before - it's
just that you no longer have to have so many enable_if's, template
specialisations, and so on in order to say "this class or template has
/this/ functionality". They also let you make templated functions and
classes in a much neater manner.
 
Metaclasses improve compile-time generation, remove boiler-plate code,
and make it simpler and more reliable to write classes with common
characteristics. They mean that many nice features can be added to C++
as metaclass libraries instead of language changes.
 
Jorgen Grahn <grahn+nntp@snipabacken.se>: Dec 07 09:46PM

On Wed, 2017-12-06, Lynn McGuire wrote:
> character literals, inline variables, fold expressions, and more. On the
> C++ standard library side is parallel versions of the STL algorithms, a
> file-system library derived from Boost, and other additions."
 
Good news!
 
> 1,605 pages ! ! !
 
> I would still like to see a standard windowing user interface library.
 
And yet everyone (I think) who responded, only did so to react to your
last comment.
 
Does someone has anything to say about the /actual/ C++17? What
features will I use the most when I get around to upgrading, in a few
years?
 
/Jorgen
 
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
jacobnavia <jacob@jacob.remcomp.fr>: Dec 08 12:29AM +0100

Le 07/12/2017 à 00:09, Lynn McGuire a écrit :
> 1,605 pages ! ! !
 
This race to featurism and bloat will never stop...
 
Nobody knows or understands the whole language. There are so many
esoteric features that to master them all several lifes are necessary.
 
Sorry I have only one, impossible to waste it learning all those 1605 pages.
Ian Collins <ian-news@hotmail.com>: Dec 08 12:41PM +1300

On 12/08/2017 12:29 PM, jacobnavia wrote:
> Le 07/12/2017 à 00:09, Lynn McGuire a écrit :
>> 1,605 pages ! ! !
 
> This race to featurism and bloat will never stop...
 
I'm sure that will will be shocked to learn that most C++ programmers
will welcome and use the new features. You are free to carry on keeping
your head in the sand.
 
--
Ian
jacobnavia <jacob@jacob.remcomp.fr>: Dec 08 10:39PM +0100

Le 08/12/2017 à 22:20, Richard a écrit :
 
> Yep. My personal KILL file is for spammers, trolls, troll feeders, or
> people for whom I've read enough of their posts to conclude that I'm
> unlikely to learn anything from future content based on past content.
 
I note that you didn't even start answering anything I said about your
famous "constexpr if". You did not say anything because you have
absolutely no arguments, and I do not remember you arguing anything with
arguments. Just this kind of prose:
 
> I don't record the reason why anyone ends up there, but for this
> newsgroup it's probably like 90% are due to troll related postings.
 
So, you do not say anything, you support the party line, and all the
people that disagree with his majesty are just trolls, spammers, and the
whole list of insults you vomit at each post.
 
Note that I do not have kill files, I do not need them. Nobody can
insult me if I do not give any importance to what they are writing or
saying.
Ian Collins <ian-news@hotmail.com>: Dec 08 02:39PM +1300


> I'm not sure if compiler vendors have realized yet that string_view
> and some other things need to be backported to their C++ 2011
> compilers. Abseil won't cut it.
 
I'm sure you realise by now that this will never happen.
 
--
Ian.
Melzzzzz <Melzzzzz@zzzzz.com>: Dec 08 03:19AM


>> Boost!?
 
> Unfortunately, many projects, especially open source projects, can't use
> boost.
 
Hm, is Boost license that restrictive? I saw some open source projects
using Boost.
 
 
--
press any key to continue or any other to quit...
Gareth Owen <gwowen@gmail.com>: Dec 08 06:22AM

>> esoteric features that to master them all several lifes are necessary.
 
>> Sorry I have only one, impossible to waste it learning all those 1605 pages.
 
> You don't have to use all features ;)
 
And, indeed, who besides compiler writers and serious language wonks
actually read language standards all the way through? (I'm sure some
people in this group do, but I suspect its a small minority of C++
programmers.)
 
The rest of us learn by browsing cppreference.com or reading
descriptions of the new features here or otherwise online. We learn new
idioms by example, and dip into the standard only for corner cases.
 
Just like movie review aggregators, online discussions of the new
features help us see the stuff that other people like or find useful,
and then we can concentrate on learning that.
 
The length of a language standard is of no more relevance than the
length of a phone book.
David Brown <david.brown@hesbynett.no>: Dec 08 12:15AM +0100

On 07/12/17 22:46, Jorgen Grahn wrote:
 
> Does someone has anything to say about the /actual/ C++17? What
> features will I use the most when I get around to upgrading, in a few
> years?
 
There are lots of nice small things:
 
template auto
 
class template argument deduction
 
inline variables (it took me a while to figure out what these are)
 
initialisers in "if" and "switch" could be useful sometimes, and make
things a little more consistent. And it will put an end to the hideous
(IMHO) C idiom "if (x = nextVal()) ... ".
 
 
"if constexpr" is going to make some templates a /lot/ neater. Along
with constexpr lambdas, it also makes compile-time calculation more
flexible (something I like, since my compiler PC is probably 1000 times
faster than the my target processors!).
 
 
When I first heard of them, I thought structured bindings would be
great. Now we have multiple return values from functions:
 
auto squareroot(double a)
{
if (a >= 0) {
return std::make_pair(std::sqrt(a), true);
}
return std::make_pair(0.0, false);
}
 
auto foo(double x)
{
auto [sq, valid] = squareroot(x);
if (valid) return sq;
return -x;
}
 
It is all "auto". It is not quite as neat as multiple returns in
Python, but it is not bad.
 
But after more thought, I don't like that much. I'd rather write:
 
auto squareroot2(double a)
{
using Ret = struct {double sq; bool valid;};
if (a >= 0) {
return Ret { std::sqrt(a), true };
}
return Ret { 0, false };
}
 
auto foo2(double x)
{
auto y = squareroot2(x);
if (y.valid) return y.sq;
return -x;
}
 
It is still nicely "auto" in the caller, but you no longer have to
remember the order of the return values - it is more robust, and clearer
in the code.
 
Structured bindings can still be useful for pulling apart arrays.
 
 
 
The new attributes might be nice for people writing portable code - my
code is gcc-specific, so I expect to stick to gcc __attribute__ in most
cases.
 
 
std::byte is an odd one - it's a good idea, but I think it was wrong to
allow bitwise operations on it.
 
 
std::optional is a good idea, that will lead to code that more clearly
shows the intent:
 
std::optional<double> squareroot3(double a) {
if (a >= 0) {
return std::sqrt(a);
}
return {};
}
 
auto foo3(double x) {
auto y = squareroot3(x);
return y.value_or(-x);
}
 
With gcc at least, the std::optional version here is slightly less
efficient than the others, which is a little surprising and
disappointing. It is unlikely to make a big difference in practice.
 
 
std::variant will be useful in many ways, I think.
Melzzzzz <Melzzzzz@zzzzz.com>: Dec 08 07:11AM


> The rest of us learn by browsing cppreference.com or reading
> descriptions of the new features here or otherwise online. We learn new
> idioms by example, and dip into the standard only for corner cases.
 
Heh I learned most reading this group ;p
(and browsing cppreference).
 
> and then we can concentrate on learning that.
 
> The length of a language standard is of no more relevance than the
> length of a phone book.
Yep. Whatever features are there we'll find out if and when we need them
;p
 
--
press any key to continue or any other to quit...
David Brown <david.brown@hesbynett.no>: Dec 08 09:46AM +0100

On 08/12/17 09:41, Ian Collins wrote:
> thumbed data books, my current hardware colleagues barely have any. The
> only things cluttering my desk these days are ever bigger screens and
> unopened bills...
 
I still have the bookshelves full, but rarely read them now. But my
desk is still cluttered - it has papers to an average depth of a couple
of inches, hundreds of dead post-it notes, three keyboards, coffee cups,
electronics boards, uncountably many USB sticks. I like to have things
at hand!
David Brown <david.brown@hesbynett.no>: Dec 08 09:29AM +0100

On 08/12/17 07:22, Gareth Owen wrote:
> actually read language standards all the way through? (I'm sure some
> people in this group do, but I suspect its a small minority of C++
> programmers.)
 
Indeed. I have read most of the C11 standard and know my way around it
quite well now, but C++ standards are a far bigger job. The library
parts in particular are only useful for implementers who need the exact
specifications - they are certainly not learning resources!
 
 
> The rest of us learn by browsing cppreference.com or reading
> descriptions of the new features here or otherwise online. We learn new
> idioms by example, and dip into the standard only for corner cases.
 
Yes - www.cppreference.com is a very useful site. And there are lots of
good blogs around for describing the newer features.
 
Ian Collins <ian-news@hotmail.com>: Dec 09 09:40AM +1300

On 12/09/2017 09:16 AM, jacobnavia wrote:
>> Oh yeah, now I remember why that guy is in my KILL file:)
 
> Well, apparently you read my posts, so your kill file is not working
> properly.
 
He read the bit I quoted.
 
 
> Asking for simplicity and easy of use, is something C++ guys seem to
> take as a personal insult. Any critic is an heresy, a holy wwar is
> necessary.
 
We know what drives your vitriolic postings about C++. You have nailed
your colours to the mast of a language that, despite your best efforts,
is unwilling to change. It's not surprising that you resent a language
that embraces change.
 
> Maybe, I do not think that software discussions should be done at a
> personal level. C++ can be criticized, as C can, or any language
> whatsoever.
 
Very true, but unfounded criticism will never be well received. Rather
than snipping you should take heed of Richard's main point about C++17:
 
"The irony is that the new features and "bloat" are very much in the
same vein as C++11: they make lots of code simpler and more uniform."
 
--
Ian.
bartc <bc@freeuk.com>: Dec 09 12:20AM

On 08/12/2017 18:41, Richard wrote:
 
 
> I like this summary of the new features:
 
> <https://www.viva64.com/en/b/0533/>
 
> - std::byte type
 
Finally, a C++17 feature (in fact a C++ feature) I can understand.
 
Yes, this is just a byte type, that doesn't do anything clever. Why did
it take so long to figure out that it was needed?
 
--
bartc
Melzzzzz <Melzzzzz@zzzzz.com>: Dec 08 03:17AM


> Nobody knows or understands the whole language. There are so many
> esoteric features that to master them all several lifes are necessary.
 
> Sorry I have only one, impossible to waste it learning all those 1605 pages.
 
You don't have to use all features ;)
 
--
press any key to continue or any other to quit...
Ian Collins <ian-news@hotmail.com>: Dec 08 09:41PM +1300

On 12/08/2017 07:22 PM, Gareth Owen wrote:
> actually read language standards all the way through? (I'm sure some
> people in this group do, but I suspect its a small minority of C++
> programmers.)
 
Times have certainly changed. I kept hard copies of C99 and C++98 and
used them as a reference on an almost daily basis. I've barely dipped
into C++11 or 14.
 
> The rest of us learn by browsing cppreference.com or reading
> descriptions of the new features here or otherwise online. We learn new
> idioms by example, and dip into the standard only for corner cases.
 
As we now do in most things. Where I used to have a shelf of well
thumbed data books, my current hardware colleagues barely have any. The
only things cluttering my desk these days are ever bigger screens and
unopened bills...
 
--
Ian.
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: