Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

STL Algorithms as Expressions

CppNow via YouTube

Overview

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

Reviews

Start your review of STL Algorithms as Expressions

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.