community

C++ Links #2--Bartlomiej Filipek

New links to check out!

C++ Links #2

by Bartlomiej Filipek

From the article:

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happened between 8th and 14th of September. Today you will find a link to a post about the C++ quality of life features, a video with an explanation of the difference between const and constexpr, an article that describes some of SFINAE problems and many others.

CppCon 2017: Class Template Argument Deduction: A New Abstraction--Zhihao Yuan

Have you registered for CppCon 2018 in September? Late registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Class Template Argument Deduction: A New Abstraction

by Zhihao Yuan

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++17 is often quoted as “just a better C++14”, suggesting that nothing is new, nothing is changing the way we program. This talk presents class template argument deduction as a counterexample, a hidden gem in the new standard.

Saves typing? A replacement for the `make` functions? If that’s your frame, then you should come to this talk. The true power of class template argument deduction is underestimated. It’s a new point of abstraction but requiring creativity, insights, and understanding about the language details to manage.

This talk will start by introducing all matters about this feature to build up sufficient background knowledge, followed by teaching how to write deduction guides by examples, and finally explain how to build abstractions using the whole feature in a top-down approach, with patterns categorized.

Microsoft Cognitive Services C++ SDK--Sebastiano Galazzo

Are you wondering how to use the Microsoft Cognitive Services with C++?

Microsoft Cognitive Services C++ SDK

by Sebastiano Galazzo

Introduction:

The project is a wrapper to use Microsoft Cognitive Services in standard C++ as is currently not supported.

The project provides full support to Computer Vision API. A wrapper to gphoto2 will provide the full control digital cameras (DSLR), getting the raw shot and making manipulations with Computer Vision API.

Available camera-ai, a working commandline example to take a picture from the camera conneced by USB and analyze by Cognitive Services.

A lot of people have a better C++ than mine, who wants to contribute is welcomed!

CppCon 2017: Fantastic Algorithms and Where To Find Them--Nicholas Ormrod

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Fantastic Algorithms and Where To Find Them

by Nicholas Ormrod

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Come dive into some exciting algorithms — tools rare enough to be novel, but useful enough to be found in practice. Want to learn about "heavy hitters" to prevent DOS attacks? Come to this talk. Want to avoid smashing your stack during tree destruction? Come to this talk. Want to hear war stories about how a new algorithm saved the day? Come to this talk! We'll dive into the finest of algorithms and see them in use — Fantastic Algorithms, and Where To Find Them.

C++ Links #1--Bartlomiej Filipek

Things to look at.

C++ Links #1

by Bartlomiej Filipek

From the article:

I'd like to make an experiment on the blog and introduce a new simple series. Each Friday you'll see a summary with valuable links and resources from the C++ World. The links and annotations are coming from a guest author - Wojciech Razik - one of the co-author of cpp-polska.pl.

CppCon 2017: Boost Your Program’s Health by Adding Fibers to your Coroutine

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Boost Your Program’s Health by Adding Fibers to your Coroutine

by David Sackstein

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

This session is intended to help the advanced programmer to understand what coroutines and fibers are, what problems they solve and how they should be applied in practice.
The session begins with an overview of these concepts, comparing them with threads, and demonstrating how they are exposed by the Boost libraries.
Apart from being clean and succinct as Boost libraries typically are, the authors of these libraries have gone to great lengths to ensure that fibers and coroutines expose a programming model consistent with that of threads. This will make them seem very familiar.
During the session I will demonstrate how fibers and coroutines can be used together with the powerful Boost.Asio library to solve some commonly occurring problems.
To conclude, I will provide some practical tips and guidelines for those who are adding fibers and coroutines to their programming diet.

CppCon 2017: Type Punning in C++17: Avoiding Pun-defined Behavior--Scott Schurr

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Type Punning in C++17: Avoiding Pun-defined Behavior

by Scott Schurr

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Type punning, treating a type as though it is a different type, has a long and sordid history in C and C++. But, as much as we'd like to deny its existence, it plays an important role in efficient low-level code. If you've ever written a program that examines the individual bits of a pointer or of a floating point number, then you've done type punning.

Given its long legacy, some of the techniques for type punning that were appropriate, even encouraged, earlier in history now live in the realm of undefined behavior. We'll identify which techniques are now proscribed and postulate why. We'll also explore ways to do type punning in C++17 that sidestep undefined behavior and are hopefully as efficient as the older techniques.

In this session we will look at:
o Common (and some uncommon) motivations for type punning.
o Techniques for type punning, both good and bad, all ugly.
o Related topics (like type conversions and std::launder()) with an eye toward unspecified and undefined behavior.