The modern C++ community puts a strong emphasis on value semantics. We have learnt to build types and algorithms thinking in terms of values, their properties, and relationships. However, when it gets to the architecture of big software, we end up growing ad-hoc webs of mutable objects that perform poorly and are hard to understand, debug and maintain.
In this talk, we will learn how to use value semantics where it matters most: for the big components of our system!
Then we will put these tools into practice to build a text-editor, discussing its design and digging into code. We will show how striking simplicity that does not compromise performance. Don't believe it? Come and see!