Now we have all the advantages of the previous examples plus value semantics
Hence copying things using var = val works nicely
Don't need to accept the need to use raw pointers or references to get polymorphism
Go a step beyond safe pointer types to also get value semantics
This talk is highly derivative of a number of talks and articles I've read recently.
Had to leave out a few techniques:
- Curiously recurring template pattern
- Looking at how boost type erasure could be implemented