workaround for has_trivial_copy