Type-Safe Interfaces with Modern C++

Course

Online

£ 10 + VAT

Description

  • Type

    Course

  • Methodology

    Online

  • Start date

    Different dates available

Master the art of development with Modern C++ type system.In this course we’ll learn how to write correct, safe, and performant code by making use of C++’s type system. Firstly, we’ll learn about the Standard Library’s “algebraic data types” and how they can increase safety, performance, and readability of your application/library. We’ll then look at function interfaces. As an example, writing a function that takes a string in such a way that it performs optimally with both std::string and const char* seems like a daunting task. It gets even more tricky with functions taking other functions as input. Is it possible to generalize these issues and provide the “perfect” interface?About the AuthorVittorio Romeo is a Software Engineer at Bloomberg LP. He completed his Bachelor's degree in Computer Science at "Università degli Studi di Messina".
He began programming at a very young age and is now a C++ enthusiast. While following the evolution of the C++ standard and embracing the newest features, he worked on several open-source projects, including modern general-purpose libraries and free cross-platform games.
Vittorio is an active member of the C++ community: he participated as a speaker at CppCon 2014/2015/2016, ++it Florence 2015 and at his local Linux Day 2013/2014 events, as a Student/Volunteer at C++Now 2015/2016, at Meeting C++ 2015/2016.
He currently maintains a C++-related blog and a YouTube channel featuring well-received modern C++11 and C++14 tutorials.
When he's not writing code, Vittorio enjoys weightlifting and fitness-related activities, competitive/challenging computer gaming and good sci-fi movies/TV-series.

Facilities

Location

Start date

Online

Start date

Different dates availableEnrolment now open

About this course

Use type system to your advantage
Create safe, rich and expressive interfaces
Use Pattern matching to implement metaprogramming
Real world scenarios to tackle programming tasks

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

This centre's achievements

2021

All courses are up to date

The average rating is higher than 3.7

More than 50 reviews in the last 12 months

This centre has featured on Emagister for 4 years

Subjects

  • Construction Training
  • Writing
  • Construction
  • Programming
  • Programme Planning
  • Programming Application
  • Internet
  • Information Systems
  • Information Systems management
  • Management

Course programme

Variants 6 lectures 46:53 The Course Overview This video provides an overview of the entire course. Understanding Variants Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
std::variant – Basic Interface Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
std::variant – Visitation Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
std::variant – Use Cases Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
std::variant – Recap Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
Variants 6 lectures 46:53 The Course Overview This video provides an overview of the entire course. Understanding Variants Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
std::variant – Basic Interface Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
std::variant – Visitation Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
std::variant – Use Cases Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
std::variant – Recap Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
The Course Overview This video provides an overview of the entire course. The Course Overview This video provides an overview of the entire course. The Course Overview This video provides an overview of the entire course. The Course Overview This video provides an overview of the entire course. This video provides an overview of the entire course. This video provides an overview of the entire course. Understanding Variants Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
Understanding Variants Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
Understanding Variants Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
Understanding Variants Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
Understand what a “variant” is and its usefulness.
  • `struct` ? `enum class` ? `variant` progression
  • Product and sum types
  • Variants versus unions
std::variant – Basic Interface Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
std::variant – Basic Interface Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
std::variant – Basic Interface Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
std::variant – Basic Interface Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
Learn about the basic interface of the new C++17 std::variant class.
  • Learn Construction and solve an assignment
  • Understand checking an active alternative
  • Explore accessing an active alternative
std::variant – Visitation Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
std::variant – Visitation Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
std::variant – Visitation Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
std::variant – Visitation Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
Understand what “visitation” is and how it can be applied to variants.
  • Learn the definition of visitations
  • std::visit with struct and generic lambda
  • Understand the shortcomings of std::visit
std::variant – Use Cases Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
std::variant – Use Cases Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
std::variant – Use Cases Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
std::variant – Use Cases Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
Learn about realistic use case scenarios where std::variant can be used effectively.
  • Learn type-safe error handling
  • Understand state machines
  • Explore recursive data structures
std::variant – Recap Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
std::variant – Recap Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
std::variant – Recap Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
std::variant – Recap Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
Section recap.
  • What a variant represents
  • std::variant interface and usage
  • Example of use cases
Implementing Variant Pattern Matching 4 lectures 21:06 The Problem with std::visit Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match Creating an Overload Set Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Match – Implementation Understand what “visitation” is and how it can be applied to variants. • Structure of the match function • Learn implementation of match function • Usage example and generated assembly benchmark Match – Recap Section recap. • Std::visit versus match • Overload set • Match implementation Implementing Variant Pattern Matching. 4 lectures 21:06 The Problem with std::visit Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match Creating an Overload Set Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Match – Implementation Understand what “visitation” is and how it can be applied to variants. • Structure of the match function • Learn implementation of match function • Usage example and generated assembly benchmark Match – Recap Section recap. • Std::visit versus match • Overload set • Match implementation The Problem with std::visit Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match The Problem with std::visit Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match The Problem with std::visit Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match The Problem with std::visit Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match Understand why std::visit is not optimal and what pattern matching is. • Learn what patterns matching is • Explore the problems with std::visit • Comparison between std::visit and match Creating an Overload Set Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Creating an Overload Set Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Creating an Overload Set Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Creating an Overload Set Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Write a generic class that creates an overload set from scratch. • Implementation overview of match • Build an overload set • C++17 deduction guide Write a generic class that creates an overload set from scratch :string_view` in other classes, and understand...

Additional information

Intermediate C++ developers familiar with C++11/14 aiming to discover and master Modern C++17 utilities and technique

Type-Safe Interfaces with Modern C++

£ 10 + VAT