Replace copy_base with optimized assignment operator