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

Limited-Time Offer: Up to 75% Off Coursera Plus!
7000+ certificate courses from Google, Microsoft, IBM, and many more.
This course covers the learning outcomes and goals of implementing Computational Geometry algorithms in the Generic Programming style, with a focus on customization points and Expression Templates. Students will learn how to construct expressions using function call syntax, customize expressions using policies, and simplify ranges and fold operations. The teaching method involves exploring examples from Linear Algebra libraries, the C++ Standard Library, and weirder operation expressions. This course is intended for software engineers and developers interested in advanced algorithms, generic code, and STL range algorithms.

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.