¿Cómo implementar Copy-on-Write?

Quiero implementar una copia en escritura en mi clase de cadena de C ++ personalizada, y me pregunto cómo ...

Intenté implementar algunas opciones, pero todas resultaron muy ineficientes.

Gracias chicos :-)