[C++-sig] Re: Allocating objects on the heap by default.
David Abrahams
dave at boost-consulting.com
Wed Jul 9 01:29:46 CEST 2003
Nicodemus <nicodemus at globalite.com.br> writes:
> David Abrahams wrote:
>
>>Pyste is about providing
>>an even terser syntax for accomplishing the same things, and
>>'std::auto_ptr<A>' is not only longer but it repeats information.
>>Also, how will that interface work when you have a class with virtual
>>functions that you want to be held by auto_ptr?
>>
>
> I think we can provide functions for the most common smart pointers to
> be registered directly:
>
> hold_with_auto_ptr(A) # or perhaps: auto_ptr_holder(A)?
> hold_with_smart_ptr(A)
>
> And a more general purpose function for any other smart pointer:
>
> hold(A, 'my_smart_ptr<A>')
>
> It does duplicate information, but very little in my opinion.
I think having two such syntaxes is unneccessary; new smart pointer
varieties are sufficiently rare that the 2nd syntax isn't justified,
and they're *used* sufficiently often that writing:
def my_smart_ptr(name):
return 'my_smart_ptr<%s>' % name
is justified by the rest of the code that gets written... And
furthermore, as I keep asking:
** What about classes with virtual functions?? **
Do you want to force the user to be knowledgeable about the name of
the Pyste-generated callback class (they would have to write
'my_smart_ptr<A_callback>' or whatever it is)? Do you want to ask
them to change their Pyste wrapping code just because they add a
virtual function to their C++ code?
--
Dave Abrahams
Boost Consulting
www.boost-consulting.com
More information about the Cplusplus-sig
mailing list