YoVDO

STL Algorithms as Expressions

Offered By: CppNow via YouTube

Tags

C++Now Courses Software Development Courses Linear Algebra Courses Computational Geometry Courses Generic Programming Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore an innovative approach to implementing and customizing STL algorithms using Expression Templates in this CppNow 2021 conference talk by Oleksandr Bacherikov. Delve into the application of Generic Programming techniques to Computational Geometry algorithms, uncovering discoveries with broad implications for STL range algorithms and generic code writing. Learn how Expression Templates can be extended beyond their traditional use in Linear Algebra libraries to achieve greater flexibility and expressiveness. Discover how function call syntax can be used for natural composition, how incorporating function object parameters transforms expressions into function objects themselves, and how policy-based customization can be applied across entire expressions. Gain insights into simplifying Ranges examples, implementing fold operations, and creating expressive binary search syntax. Compare this approach to the Abbreviated Lambdas proposal and explore its potential to revolutionize the way generic code is written in C++.

Syllabus

Intro
Challenges in customizing advanced algorithms on the example of Computational Geometry
Customization mechanism is CGAL
Motivating example: vectors addition
Expression Templates in the Linear Algebra libraries
Vectors addition with Expression Templates
Expressions in the C++ Standard Library
What the Standard Library provides
Scalar operations in the Eigen Linear Algebra library
Extensible plus with expressions support
Operation base class
What do such operations enable?
Input-output parameter wrapper
Expression implementation
Simplifying Ranges example
Simplifying Ranges projections
Fold operations
Examples outside vector arithmetic
Weirder operation expression example
Existing analogues
Evaluation of operation expression
We can implement even some basic operations in terms of others
Comparison to the Abbreviated Lambdas proposal
Expressive binary search syntax
Motivating example: when operator == is not enough


Taught by

CppNow

Related Courses

Advanced Java Programming
Udemy
Scala Type Classes and Parameterization
Pluralsight
Random Variables as Types - Lecture 11
The Julia Programming Language via YouTube
Hands-on With Dynamic Dispatch Traits in Rust - Rust Tutorial for Developers
Trevor Sullivan via YouTube
IEnumerable and IEnumerator Interfaces in C#
tutorialsEU via YouTube