
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 20 August 2009, Thorsten Ottosen wrote:
Frank Mori Hess skrev:
I've noticed that ptr_container/clone_allocator.hpp contains an undocumented overload of new_clone that accepts a pointer-to-const:
template< class T > inline T* new_clone( const T* r );
It is annoying because it doesn't support a pointer-to-non-const argument, resulting in a compile error if you try. Any chance one of the following could be done?
Yes, which do you prefer?
1,2, or 4 are all equally fine to me. Actually, I'm currently in the process of moving away from new_clone to a "placement" version of it for generic_ptr::cloning (a cloning smart pointer class). That will let me avoid having to do two allocations for every copy of generic_ptr::cloning, by using a boost::aligned_storage inside the clone allocator. Also, my versions of new_clone and CloneAllocator will have to be generalized slightly to support generic pointer-like objects in addition to plain old pointers.
1) remove it
2) add a pointer-to-non-const overload
3) change it to template< class T > T* new_clone( T* r );
4) or if you care about always returning a pointer-to-non-const change it to template< class T > typename remove_const<T>::type * new_clone( T* r ); -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkqNX3sACgkQ5vihyNWuA4WFWQCgiF3PL2ZHlGNRh2ikzzgG01UA VlMAnj77HCwpGUpfHtBa6DGFGOfPo+EU =s1M0 -----END PGP SIGNATURE-----