The next big Thing - Andrei Alexandrescu - Meeting C++ 2018 Opening Keynote
Andrei Alexandrescus Opening Keynote from Meeting C++ 2018
The next big Thing
by Andrei Alexandrescu
June 8-13, Brno, Czechia
June 17-20, Folkestone, UK
September 12-18, Aurora, CO, USA
November 16-21, Búzios, Rio De Janeiro, Brazil
November 26-28, Berlin, Germany
By Meeting C++ | Jan 12, 2019 12:45 PM | Tags: meetingcpp intermediate experimental efficiency c++17 basics advanced
Andrei Alexandrescus Opening Keynote from Meeting C++ 2018
The next big Thing
by Andrei Alexandrescu
By Jason Turner | Jan 9, 2019 03:12 PM | Tags: intermediate c++20 advanced
Episode 149 of C++ Weekly.
C++20's Lambda Usability Changes
by Jason Turner
About the show:
C++20 brings many different changes to lambdas, and two of these changes greatly affect the ways in which lambdas can be used. In this episode Jason discusses the use of lambdas in unevaluated contexts and the default constructability of lambdas in C++20.
By Adrien Hamelin | Jan 7, 2019 12:12 PM | Tags: intermediate community
Nothing is perfect.
Functional Programming Is Not a Silver Bullet
by Jonathan Boccara
From the article:
The past few years have seen a boost in popularity of the functional programming paradigm. Languages that were used mostly in academic circles for decades are now in broader use amongst programmers. And every couple of months, another functional language hits the news and gets its trail of followers.
Why is that? Functional programming allow for safer and more robust code, in part due to one of its core principles: values are not mutable. A consequence of this is that there is no side effects. We can apply this principle in any language, including in C++, by coding with the least side effects possible.
While it certainly helps putting together a better design of code, it’s important to realize that it’s not the panacea, that this principle doesn’t solve in itself all design issues. Nothing is the panacea anyway, but in this time of gold rush towards functional programming, we could be tricked into thinking it will automatically lead to good design.
Functional programming is known to reduce coupling in code. We’ll briefly go over what coupling is, what sort of coupling functional programming prevents, and how some other dangerous forms of coupling can still sneak in even with functional programming. You want to pay attention to those to preserve the design of your code...
By Adrien Hamelin | Jan 4, 2019 02:50 PM | Tags: intermediate
Basic, but complex.
What is an Allocator?
by Vanand Gasparyan
From the article:
This is one of the many beautiful questions you can think on or be asked at interviews if your native coding language is C++. The beautiful thing about this question is that you answer it again and again as you grow and gain more experience. Similarly, when you’re being interviewed for an internship, knowing that there is such a thing somewhere in STL might be enough, whereas later you’ll be expected to write your own custom allocator...
By Adrien Hamelin | Jan 4, 2019 02:48 PM | Tags: intermediate
Did you know?
Don’t forget: std::pair does lexicographical ordering, so you don’t have to
by Raymond Chen
From the article:
A feature perhaps not as widely known as I thought is that the std::pair type performs lexicographical ordering, so you don't have to...
By Adrien Hamelin | Jan 3, 2019 01:12 PM | Tags: intermediate c++17
Nice way to learn more.
A Free Ebook on C++ Smart Pointers
by Jonathan Boccara
From the article:
To write expressive code in C++, mastering smart pointers is a necessity! Without them, our code becomes littered with memory management, news and delete, and unclear semantics about who owns what resources.
If you’re part of my mailing list (which you can join at the bottom of this post), you will get as a Christmas gift a free ebook of more than 50 pages of selected contents of Fluent C++ about smart pointers. Of course, you also get access to the ebook if you’re a Patron of Fluent C++...
By Adrien Hamelin | Dec 12, 2018 08:36 AM | Tags: intermediate c++17
Useful to recall.
Overview of std::map’s Insertion / Emplacement Methods in C++17
by Walletfox
From the article:
TL;DR Go ahead and try out the C++17 emplacement / insertion methods. They offer a tangible improvement in terms of expressiveness and code safety.
Here are examples of code using them...
By Adrien Hamelin | Dec 6, 2018 01:37 PM | Tags: intermediate c++17
Still learning about C++17.
How to Use The Newest C++ String Conversion Routines - std::from_chars
by Bartlomiej Filipek
From the article:
With C++17 we get another facility to handle the conversion between text and numbers. Why should we care about the new routines? Are they better in any way?
By Adrien Hamelin | Dec 5, 2018 02:26 PM | Tags: intermediate
Quick A: the fill() function.
Recently on SO:
Is there std::memset equivalent for std::array?
Use the array's fill() method, that is what its purpose is.
If you fill it with 0 (for integers, for instance), then the compiler may optimize it if it can (often does, you can look at the generated code).
By Adrien Hamelin | Dec 4, 2018 12:55 PM | Tags: intermediate
The end.
How to Design Function Parameters That Make Interfaces Easier to Use (3/3)
by Jonathan Boccara
From the article:
This is the final article in the series about function parameters. This series contains:
- Part 1: interface-level parameters, one-parameter functions, const parameters,
- Part 2: calling contexts, strong types, parameters order,
- Part 3: packing parameters, processes, levels of abstraction.