There are some interesting projects for these
CPU Raytracer https://github.com/l3kn/raytracer
CRSFML multimedia/game library https://github.com/BlaXpirit/crsfml
CPU Raytracer https://github.com/l3kn/raytracer
CRSFML multimedia/game library https://github.com/BlaXpirit/crsfml
I can see that becoming problematic for simulations (lots of particles, for example) and games especially. At some point you're going to want pass-by-reference and in-place mutations for better performance (ideally hidden behind some form of encapsulation of course). Is there no way around this?