2010-08-07 15 views

cevap

8

boost::ptr_vector konteyneriniz, kopyalama politikasını tanımlayan CloneAllocator numaralı isteğe bağlı bir şablon parametresine sahiptir. Varsayılan ayırıcı, bir nesneyi klonlamak için kopyalama kurucusunu basitçe çağıran heap_clone_allocator'dur.

Clone Allocator, klonlama etrafında bir dolaylı katman katmanın bir yolu olarak kullanılır. Örneğin, kopyalanamaz bir türün klonlamasını doğru şekilde işleyen özel bir ayırıcı sağlamanıza olanak tanır.

Daha fazla bilgiyi the Boost Pointer Containers Library documentation'da bulabilirsiniz, bu da Clonable ve Clone Allocator kavramlarını açıklar.

+0

Nesnemin kopya-yapılandırılabilir olsa bile, klonlanabilir konsepti desteklemem gerekir mi? Dokümanlar sadece nesne olmadığında sadece klonlanabilir olarak bahseder. –

+0

@Billy: Bu benim anlayışım. 'Ptr_vector' kullanmıyordum, ancak kullandığım diğer işaretçi kapsayıcıları klonlamayı nasıl kullandılar. –

+0

@Billy: Ayrıca klonlanabilir gereksinimden kurtulmak için 'heap_clone_allocator' yerine view_clone_allocator' kullanabilirsiniz. Sonra new_clone() 'için aşırı yüklenme gerekli değildir. Belli ki kapları daha sonra kopyalayamazsın. –

İlgili konular