C++ community surveys - my CppCon Lightning talk
A longer version of my CppCon Lightning talk about the Meeting C++ community survey.
CppCon 2020 lightning talk - C++ community surveys
by Jens Weller
September 13-19, Aurora, CO, USA
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Meeting C++ | Sep 21, 2020 02:19 PM | Tags: performance meetingcpp community c++20 c++17 c++14 c++11
A longer version of my CppCon Lightning talk about the Meeting C++ community survey.
CppCon 2020 lightning talk - C++ community surveys
by Jens Weller
By Ansel Sermersheim | Sep 21, 2020 12:28 PM | Tags: None
New video on the CopperSpice YouTube Channel:
Qualifiers
by Barbara Geller and Ansel Sermersheim
About the video:
In this video we explore the many different kinds of qualifiers available in C++ and explore how they interact. We also cover why you would want to qualify your methods, and a surprising corner case in the way assignment is defined which can lead to very subtle bugs.
Please take a look and remember to subscribe!
By Geoff | Sep 21, 2020 12:26 PM | Tags: None
A history, some negative examples, and some positive examples of using object oriented programming in C++.
The Last Vestiges of Object Orientated Programming
by Geoffrey Viola
From the article:
Object oriented programming is not as popular as it was. As with any programming language feature it can be abused. Multiple inheritance, long inheritance chains, and needless inheritance can add unnecessary complexity. There are few cases where it works well in C++: building product types, enforcing an invariant, and dynamic polymorphism. Generally, classes should follow one of these deliberately to follow the single responsibility principle, but there are exceptions.
By triangles | Sep 21, 2020 12:24 PM | Tags: None
A look at one of the most popular build systems for C and C++.
Introduction to modern CMake for beginners
Internal Pointers
From the article:
CMake is a collection of open-source and cross-platform tools used to build and distribute software. In recent years it has become a de-facto standard for C and C++ applications, so the time has come for a lightweight introductory article on the subject.
By Adrien Hamelin | Sep 21, 2020 11:56 AM | Tags: c++20
constexpr is getting yet again more accessible.
constexpr std::vector and std::string in C++20
by Rainer Grimm
From the article:
Probably the most viral keyword in modern C++ is constexpr. With C++20, we have a constexpr std::vector and a constexpr std::string. Additionally, both containers can be manipulated with the constexpr algorithms of the Standard Template Library...
By Adrien Hamelin | Sep 21, 2020 11:53 AM | Tags: intermediate
Quick A: For certain members only.
Recently on SO:
Is std::unique_ptr<T> required to know the full definition of T?
Most templates in the C++ standard library require that they be instantiated with complete types. However shared_ptr and unique_ptr are partial exceptions. Some, but not all of their members can be instantiated with incomplete types. The motivation for this is to support idioms such as pimpl using smart pointers, and without risking undefined behavior...
By Meeting C++ | Sep 21, 2020 03:36 AM | Tags: meetingcpp intermediate efficiency community c++20 c++17 c++14 c++11 basics advanced
Zach Laine spoke at the Meeting C++ online group in the beginning of September:
Making Iterators, Views and Containers Easier to Write with Boost.STLInterfaces - Zach Laine
by Zach Laine
By Adrien Hamelin | Sep 18, 2020 10:49 AM | Tags: stl
If you had troubles.
What std::exchange does, and how to remember it
by Jonathan Boccara
From the article:
std::exchange was introduced in the C++ standard library in C++14 under the header <utility>.
Its name suggests that it’s a general-purpose and useful function, and its template prototype working with any type confirms this impression.
I don’t know about you, but I always had a problem with std::exchange: I couldn’t remember what it was doing. I learnt several times the operations that std::exchange performs, but each time I forgot them soon after.
Then at some point it clicked: std::exchange is a setter returning the old value. Ignoring the name “exchange” but thinking of it as a “setter” helped me make it stick to my mind.
It might just be me having a hard time with std::exchange for some reason. But just in case you also have issues remembering the operations of std::exchange, let’s see why std::exchange has this meaning, and why this meaning is not obvious from its name.
This should help you remember it once and for all...
By Adrien Hamelin | Sep 18, 2020 10:45 AM | Tags: c++20
c++20 is coming.
C++ Coroutines in Visual Studio 2019 Version 16.8
by Jonathan Emmett
From the article:
It’s been a long journey for coroutines in C++ and in MSVC. We announced an early preview of resumable functions in 2013, followed up by the /await switch and initial C++ standardization proposals in 2014, to proposal revisions in 2015, and have continued tracking the Coroutines TS (Technical Specification) progress through Visual Studio 2017 and 2019. With the adoption of coroutines into the C++ standard in 2019, we are now pleased to announce feature completion of C++20 coroutines in Visual Studio 2019 version 16.8...
By Adrien Hamelin | Sep 17, 2020 11:04 AM | Tags: c++20
Tools are getting to 20.
Standard C++20 Modules support with MSVC in Visual Studio 2019 version 16.8
by Cameron DaCamara
From the article:
It has been some time since our last update regarding C++ Modules conformance. The toolset, project system, and IDE teams have been hard at work to create a first class C++ Modules experience in Visual Studio 2019. There is a lot to share, so let’s get right into it...