C++17: std::string_view
Simple and useful.
C++17: std::string_view
by Marc Gregoire
From the article:
If you have to write a function that accepts a string, what type of parameter will you use?
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Adrien Hamelin | Jun 8, 2018 12:28 PM | Tags: c++17 basics
Simple and useful.
C++17: std::string_view
by Marc Gregoire
From the article:
If you have to write a function that accepts a string, what type of parameter will you use?
By Adrien Hamelin | Jun 6, 2018 12:06 PM | Tags: c++17 advanced
Really everything!
Everything You Need to Know About std::variant from C++17
by Bartlomiej Filipek
From the article:
Around the time C++17 was being standardized I saw magical terms like “discriminated union”, “type-safe union” or “sum type” floating around. Later it appeared to mean the same type: “variant”...
By Adrien Hamelin | Jun 6, 2018 11:43 AM | Tags: c++17 basics
Simple and useful.
C++17: Fallthrough in switch statements
by Marc Gregoire
From the article:
A C++ switch statement allows execution to fall through from one case to the next case when a break statement is missing...
By Meeting C++ | Jun 5, 2018 08:12 AM | Tags: meetingcpp community
Lots of User Groups are meeting in June, Meeting C++ has posted an detailed overview:
C++ User Group Meetings in June 2018
by Jens Weller
From the article:
The monthly overview of upcoming C++ User Group meetings. Join a C++ User Group near you, or learn how to start your own!
There are 4 new C++ User Groups: Houston, Prague, Cluj, New York.
By Adrien Hamelin | Jun 4, 2018 01:38 PM | Tags: c++17 basics
Do you know it?
C++17: std::byte
by Marc Gregoire
From the article:
C++17 introduced a new type: std::byte...
By Adrien Hamelin | Jun 4, 2018 01:19 PM | Tags: experimental
Nothing is easy.
App-level Developer on std::error Exceptions Proposal for C++. Part II. The Discussion.
by "No Bugs" Hare
From the article:
For quite a long while, in certain parts of C++ community, there is a substantial resistance to existing C++ exceptions; this leads to an alternative subculture of using error codes instead of exceptions, so there are effectively two barely-compatible C++ worlds: world-using-exceptions, and world-using-error-codes...
By Adrien Hamelin | Jun 4, 2018 12:57 PM | Tags: experimental
Talking about the future.
App-level Developer on std::error Exceptions Proposal for C++. Part I. The Good
by "No Bugs" Hare
From the article:
Very recently (that’s less than 3 weeks ago) a very audacious proposal was published by no less than Herb Sutter, under the name of [P0709R0]...
By shreck | Jun 3, 2018 01:07 AM | Tags: None
An updated discussion on C++ type design, especially the overlap between Regular and reference types.
Revisiting Regular Types
By Titus Winters
From the article:
With 20 years of experience, we know that Regular type design is a good pattern - we should model user-defined types based on the syntax and semantics of built-in types where possible. However, common formulations of Regular type semantics only apply to values, and for performance reasons we commonly pass by reference in C++. In order to use such a reference as if it were its underlying Regular type we need some structural knowledge of the program to guarantee that the type isn’t being concurrently accessed. Using similar structural knowledge, we can treat some non-Regular types as if they were Regular, including reference types which don’t own their data. Under such an analysis, string_view indeed behaves as if it were Regular when applied to common usage (as a parameter). However, span does not, and further it is (currently) impossible to have shallow copy, deep compare, and Regular const semantics in the same type in C++.
This analysis provides us some basis to evaluate non-owning reference parameters types (like string_view and span) in a practical fashion, without discarding Regular design.
By Thomas Young | Jun 3, 2018 01:05 AM | Tags: None
For C++ code-bases with multiple targets and shared code elements, static libraries are kind of the default approach, but is there a better way to set this up?
Automatic Object Linkage, with Include Graphs
by Thomas Young
From the article:
In this post I describe an alternative approach to sharing source code elements between multiple build targets.
...
We'll need to enforce some constraints on the way the source code is set up, notably with regards to header file organisation, but can then automatically determine what to include in the link operation for each build target, based on a graph of include relationships extracted from the source files.
The resulting dynamic, fine grained, object-file centric approach to code sharing avoids the need for problematic static library decomposition, and the associated 'false dependencies'.
By Christopher Di Bella | Jun 3, 2018 01:04 AM | Tags: c++17
Today, we dive into what std::find does, and how we can leverage various concepts to cleanly express its requirements, as achieved in std::ranges::find.
Transforming
std::findintostd::ranges::find
By Christopher Di Bella
From the article:
... The code is nearly the same, but not quite. Where it differs is in how we determine the end of the sequence, how we take the successor of our current element, and how we retrieve the value. While this is conceptually the same, it’s implementationally different.
...
Iterators are a topic rich with mathematics. Because they are part of what makes generic programming so powerful, this topic spans multiple chapters in books on generic programming.
...
we’ll now refine find to consider the
EqualityComparableWithconcept that we laboured over in the last article....