News

Comparisons in C++20--Barry Revzin

Get familiar with it, it's coming and it's going to help you!

Comparisons in C++20

by Barry Revzin

From the article:

Now that the Cologne meeting is over and we’ve more or less finalized (at least before the NB comments come in) C++20, I wanted to take the time to describe in detail one of the new language features we can look forward to. The feature is typically referred to as operator<=> (defined in the language as “three-way comparison operator” but more colloquially referred to as “operator spaceship”), but I think it has broader scope than that.

We’re not just getting a new operator, we’re significantly changing the semantics of how comparisons work at a language level...

Trip Report: C++ Standards Meeting in Cologne, July 2019--Botond Ballo

Lots happened!

Trip Report: C++ Standards Meeting in Cologne, July 2019

by Botond Ballo

From the article:

Last week I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in Cologne, Germany. This was the second committee meeting in 2019; you can find my reports on preceding meetings here (February 2019, Kona) and here (November 2018, San Diego), and previous ones linked from those. These reports, particularly the Kona one, provide useful context for this post...

Advanced Modern C++ Training -- Peter Gottschling

Next open trainings in September and December:

Advanced Modern C++ Training

by Peter Gottschling

About the training

Mastering C++ is an intriguing challenge that can be utterly satisfactory. This complex, multi-paradigm language allows us to write software of highest performance with well-structured and smoothly growing programs. The power of C++ was tremendously raised with the new features of C++11 and C++14 such as type deduction, lambdas, rvalues, initializer lists – to name only a few. And C++17 adds some more interesting feature like folding and structured binding.

To tackle this challenge, we offer this intensive training mainly based on our trainer's book “Discovering modern C++”. You will see, discuss, and apply a wide spectrum of advanced features and dive into the world of modern C++ programming. Open courses are four days long and inhouse training is available from three to five days.

About the trainer:

Peter Gottschling is the author of the advanced C++14 book “Discovering Modern C++” and the German C++17 book “Forschung mit modernem C++”, the Matrix Template Library 4, co-author of the Boost Graph Library and other scientific libraries. He is vice-chair of DIN’s programming language committee and was (the last) head of the German delegation in the ISO committee for C++ standardization. He is managing director of SimuNova and taught C++ in numerous profesional trainings and academic courses.

When:

09-16-2019 to 09-19-2019 in English

12-02-2019 to 12-05-2019 in German

Dates for next year will be posted soon.

Where: Leipzig

 

How To Detect Function Overloads in C++17, std::from_chars Example

How to check if a function can be invoked? SFINAE? if constexpr?<img alt="" data-cke-saved-src="https://3.bp.blogspot.com/-LPhyXKA1CT8/XSQ-b9BNhgI/AAAAAAAAD2w/ooIxhAR8Q3wmu7xqq2-CTsU8bVLnGWvvACLcBGAs/s1600/funcoverload.png" src="https://3.bp.blogspot.com/-LPhyXKA1CT8/XSQ-b9BNhgI/AAAAAAAAD2w/ooIxhAR8Q3wmu7xqq2-CTsU8bVLnGWvvACLcBGAs/s1600/funcoverload.png" 300px;="" height:="" 96px;="" float:="" right;"="" style="height: 74px; width: 230px; float: right;">

How To Detect Function Overloads in C++17, std::from_chars Example

by Bartlomiej Filipek

From the article:

Working with real examples is better in most of the cases, so I like that we could show how the detection pattern works on a real function: std::from_chars. The full check used various of techniques: SFINAE, void_t, decltype, std::declval, std::true_type, std::false_type and partial template specialisation. Plus we even used if constexpr!

What Every C++ Developer Should Know to (Correctly) Define Global Constants--Jonathan Boccara

C++17 to the rescue.

What Every C++ Developer Should Know to (Correctly) Define Global Constants

by Jonathan Boccara

From the article:

Constant values are an everyday tool to make code more expressive, by putting names over values.

For example, instead of writing 10 you can write MaxNbDisplayedLines to clarify your intentions in code, with MaxNbDisplayedLines being a constant defined as being equal to 10.

Even though defining constants is such a basic tool to write clear code, their definition in C++ can be tricky and lead to surprising (and even, undefined) behaviour, in particular when making a constant accessible to several files.

Everything in this article also applies to global variables as well as global constants, but global variables are a bad practice contrary to global constants, and we should avoid using them in the first place...

std::format in C++20--Victor Zverovich

Just great!

std::format in C++20

by Victor Zverovich

From the article:

I’m happy to announce that the Text Formatting proposal (std::format) made it into the C++20 Committee Draft at the Cologne meeting, just in time before the feature freeze. This concludes a three-year long design, implementation, and standardization effort.

Here’s a brief history of the proposal aka “what took you so long?”...

Trip report: Summer ISO C++ standards meeting (Cologne)--Herb Sutter

Many things happened!

Trip report: Summer ISO C++ standards meeting (Cologne)

by Herb Sutter

From the article:

Obligatory comment: The C++20 Eagle has wings.

At noon today, July 20 2019, the ISO C++ committee completed its summer meeting in Cologne, Germany, hosted with thanks by Think-Cell, SIGS Datacom, SimuNova, Silexica, Meeting C++, Josuttis Eckstein, Xara, Volker Dörr, Mike Spertus, and the Standard C++ Foundation...