Overview
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