C++ Weekly Episode 17: C++17's `std::invoke`—Jason Turner
Episode 17 of C++ Weekly.
C++17's `std::invoke`
by Jason Turner
About the show:
This week Jason previews one of his favorite up coming new features of C++17: `std::invoke`.
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Jason Turner | Jun 27, 2016 09:11 AM | Tags: intermediate c++17
Episode 17 of C++ Weekly.
C++17's `std::invoke`
by Jason Turner
About the show:
This week Jason previews one of his favorite up coming new features of C++17: `std::invoke`.
By Meeting C++ | Jun 22, 2016 02:03 AM | Tags: intermediate conference advanced
Most talks of this years Meeting C++ conference are now online:
Talks at Meeting C++ 2016
by Jens Weller
The top 7 Talks chosen by the voting:
Exploring C++17 and beyond
C++ Static Analysis
Functional reactive programming in C++
C++ Core Guidelines: Migrating your Code Base
Want fast C++? Know your hardware!
The memory model in C++
Implementing `static` control flow in C++14
By Jason Turner | Jun 20, 2016 08:14 AM | Tags: intermediate c++11
Episode 16 of C++ Weekly.
Avoiding `std::bind`
by Jason Turner
About the show:
After discussing how to use `std::bind` from C++11 in the last episode, Jason follows up with why you should never use `std::bind`, and the alternatives that are available.
By Adrien Hamelin | Jun 17, 2016 02:16 PM | Tags: intermediate c++14
The last of the compile time constant series.
Modern C++ Features – constexpr
by Arne Mertz
From the article:
In the last two weeks I have written about the basics of compile time constants and calculation with those constants. This week I conclude this mini series with the keyword constexpr added in C++11/14...
By Adrien Hamelin | Jun 16, 2016 01:09 PM | Tags: intermediate
Quick A: They do not.
Recently on SO:
Do mutexes guarantee ordering of acquisition?
Known problem. C++ mutexes are thin layer on top of OS-provided mutexes, and OS-provided mutexes are often not fair. They do not care for FIFO.
The other side of the same coin is that threads are usually not pre-empted until they run out of their time slice. As a result, thread A in this scenario was likely to continue to be executed, and got the mutex right away because of that.
By Adrien Hamelin | Jun 15, 2016 01:54 PM | Tags: intermediate community
ACCU’s Overload journal of April 2016 is out. It contains the following C++ related articles.
Overload 132
From the journal:
Dogen: The Package Management Saga
How do you manage packages in C++? Marco Craveiro eventually discovered Conan after some frustrating experiences. by Marco Craveiro
QM Bites – Order Your Includes (Twice Over)
Header includes can be a shambles. Matthew Wilson encourages us to bring some order to the chaos. by Matthew Wilson
A Lifetime In Python
Resource management is important in any language. Steve Love demonstrates how to use context managers in Python. by Steve Love
Deterministic Components for Distributed Systems
Non-deterministic data leads to unstable tests. Sergey Ignatchenko considers when this happens and how to avoid it. by Sergey Ignatchenko
Programming Your Own Language in C++
Scripting languages allow dynamic features easily. Vassili Kaplan writes his own in C++ allowing keywords in any human language. by Vassili Kaplan
Concepts Lite in Practice
Concepts should make templates easier to use and write. Roger Orr gives a practical example to show this. by Roger Orr
Afterwood
Magazines sometimes use the back page for adverts or summaries. Chris Oldwood has decided to provide us with his afterwords, or ‘afterwood’. by Chris Oldwood
By Adrien Hamelin | Jun 14, 2016 12:44 PM | Tags: intermediate experimental
Modules in Conan explained:
Building And Packaging C++ Modules In Vs2015
by Conan's blog
From the article:
This post makes a brief introduction to the C++ modules (we wished C++17, but we will have to wait). Modules have already been experimentally available in an early implementation in CLang, and now Microsoft is also providing them in Visual Studio 2015. We will see their syntax and how to build them, as introduced in the Visual Studio Blog, and at the same time, we will show how to create and consumes packages with C++ modules with conan C/C++ package manager.
By Adrien Hamelin | Jun 13, 2016 12:57 PM | Tags: performance intermediate
An interesting article:
Implementing Queues for Event-Driven Programs
by “No Bugs” Hare
From the article:
We’ve already discussed things related to sockets; now let’s discuss the stuff which is often needed (in particular, it is of Utmost Importance when implementing Reactors), but which is not that common to be universally available as a part of operating system.
I’m speaking about queues. And not only just about “some” queue, but about queues which have certain properties desirable for our Reactors a.k.a. ad-hoc Finite State Machines a.k.a. Event-Driven Programs.
By Adrien Hamelin | Jun 13, 2016 12:41 PM | Tags: intermediate c++14
Have you registered for CppCon 2016 in September? Don’t delay – Early Bird registration is open now.
While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:
constexpr: Introduction
by Scott Schurr
Summary of the talk:
I'm excited about constexpr. It's probably my favorite C++11 feature and it's gotten even better with C++14. This talk will introduce constexpr to the uninitiated. We'll start with C++11 and continue into the improvements introduced with C++14. We'll look into useful ways to think about constexpr code. We'll also cover some tips and tricks with writing constexpr code.
By Adrien Hamelin | Jun 10, 2016 01:16 PM | Tags: intermediate efficiency
The compile time story continues...
Compile Time Constants Part 2: Compile Time Calculations
by Arne Mertz
From the article:
I have written about what we need compile time constants for last week. This time I will dig a bit into where we can get compile time constants from, and how we can do compile time calculations...