|
Boost : |
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2002-04-19 21:08:23
> > 15. const operator->() and operator*()
> > Why don't they return const_pointer and const_reference appropriately? int
> > const& would not allow you to change the referenced object.
Speaking of smart_ptr operators...it would be nice to overload operator->* as
well. The preprocessor library can produce the necessary implementation so you
get something like this:
template<class T /* ... */> class smart_ptr {
private:
T* m_ptr;
public:
// ...
template<class U> inline typename closure<U>::return_type operator->*(U
ptr) {
return make_closure(m_obj, ptr);
}
};
This can be made to work for everything: pointers-to-data-members,
pointers-to-functions (in all their cv-qualified versions).
Well, almost everything--not functions that have an ellipsis.
Paul Mensonides
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk