Re:Modern C++: 7 Ways to Fake It Until You Have It
by ilugaslifk on Tuesday September 04, 2018 @12:10AM
(#17906576)
I know this is not quite on topic, but:
Giving some particular construct in your language the official name "Concepts" is just unbelievably fucking atrociously stupid. Inexplicably greedy and needlessly destructive.
Say what you will about Haskell's user-hostile jargon, but even they had the sense to rename a concept that was originally called "Idiom". (now "Applicative")
Re:Modern C++: 7 Ways to Fake It Until You Have It
by jholman on Tuesday September 04, 2018 @05:25AM
(#17907719)
Is it worse than calling your auto-resizing-sequence type "vector", even though a vector is properly a tuple of (arbitrary) fixed size, and is incomparable with another thing of any other size?
Re:Modern C++: 7 Ways to Fake It Until You Have It
by Koshkin on Friday September 07, 2018 @03:29PM
(#17936988)
Yes, built-ins, intrinsics, and extensions.
My original point was simply that std::vector, say, is just as good a "keyword" as any - perhaps, not because you cannot redefine it but because you wouldn't, and if you didn't like what it does, you'd use/implement something else.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by AstralStorm on Tuesday September 04, 2018 @04:18AM
(#17907461)
Applicative is actually a lying name as it has little to do with Applicative category in maths. (an Arrow does, is a subkind of mathematical applicatives)
It is in the same category of lies like C++ calling its thing a class. (except C++ does not try to have math background)
I prefer a common name to a wrong and confusing name.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by phendrenad2 on Tuesday September 04, 2018 @03:28AM
(#17907247)
As a teen, I was introduced to C++ by a friend (who was trying to get me to stop programming in BASIC). We had a serious bit of confusion for a moment when I couldn't understand where he was watching/attending/accessing these "classes".
Imagine how much more fun we could have had if they had "concepts" in the language back then!
Re:Modern C++: 7 Ways to Fake It Until You Have It
by laythea on Tuesday September 04, 2018 @04:09AM
(#17907418)
I would argue that sprinkling your C++ version X code with equivalent C++ version Y code commented out is an indication that you may have too much time on your hands :)
Seriously though, in my opinion, it makes the code horrible to read. Comments were invented to provide a programmer to programmer communication method. Stick with 1 C++ version (even that is a lot!). Migrate code slowly or not at all (there is very rarely a solid justification to rewrite working production code), and remember anything you rewrite will need fully tested (and you may still miss some edge cases). Your fellow programmer and team will thank you.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by saagarjha on Monday September 03, 2018 @11:40PM
(#17906462)
Three of these are essentially documentation changes. It goes to show that having readable code that makes your intentions explicit is something that C++ has put a focus in recent versions.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by blt on Tuesday September 04, 2018 @12:06AM
(#17906560)
If you're going to put all that modern c++ in comments, might as well use a macro or special token so you can uncomment them automatically when you switch to a newer compiler.
This states that the website's contents are licensed under CC-BY-SA and GFDL, both basically just requiring a link-back to the source. Furthermore, example implementations in reference websites are basically meant to be copy pasted. That's, like, the whole point of their existence.
Re:Modern C++: 7 Ways to Fake It Until You Have It
by Someone on Tuesday September 04, 2018 @02:43AM
(#17907076)
That’s not just a link-back. Maintaining even one such text fragment across the history of a project already is hard. With every edit of the file, you’ll have to evaluate whether the gist of the original code still is there.
Let’s say somebody copy-pastes half an example somewhere else. Should that have a link back, too?
I think, the smaller the fragment copied, the harder this is.
Giving some particular construct in your language the official name "Concepts" is just unbelievably fucking atrociously stupid. Inexplicably greedy and needlessly destructive.
Say what you will about Haskell's user-hostile jargon, but even they had the sense to rename a concept that was originally called "Idiom". (now "Applicative")
(okay, I guess it might be worse than that)
Compiler writers often extend the language with new keywords.
I still feel like a standard container is less fundamental than keywords, but I value your perspective.
My original point was simply that std::vector, say, is just as good a "keyword" as any - perhaps, not because you cannot redefine it but because you wouldn't, and if you didn't like what it does, you'd use/implement something else.
It is in the same category of lies like C++ calling its thing a class. (except C++ does not try to have math background)
I prefer a common name to a wrong and confusing name.
Imagine how much more fun we could have had if they had "concepts" in the language back then!
Seriously though, in my opinion, it makes the code horrible to read. Comments were invented to provide a programmer to programmer communication method. Stick with 1 C++ version (even that is a lot!). Migrate code slowly or not at all (there is very rarely a solid justification to rewrite working production code), and remember anything you rewrite will need fully tested (and you may still miss some edge cases). Your fellow programmer and team will thank you.
https://cgit.freedesktop.org/libreoffice/core/commit/?id=20b...
Other goodies:
SAL_FALLTHROUGH for [[fallthrough]] - see https://opengrok.libreoffice.org/xref/core/include/sal/types...
This is how you get your employer sued for copyright infringement
https://en.cppreference.com/w/Cppreference:FAQ
This states that the website's contents are licensed under CC-BY-SA and GFDL, both basically just requiring a link-back to the source. Furthermore, example implementations in reference websites are basically meant to be copy pasted. That's, like, the whole point of their existence.
Let’s say somebody copy-pastes half an example somewhere else. Should that have a link back, too?
I think, the smaller the fragment copied, the harder this is.