
Boost : 
From: Geurt Vos (G.Vos_at_[hidden])
Date: 20010503 02:26:24
Idea 1:
Support for 0 (and only 0) assignment could still be
considered, it does however require a change in the
interface. Here's the idea: 'function' defines an empty
class in its private section, and adds an assignment
operator which takes a pointer to this class. Now the
user can _only_ assign 0 to it. Here's an example:
class function {
class assign0 { };
public:
function& operator=(const assign0 *)
{
clear();
return *this;
}
};
Problems arise when there's an assignment operator
which has a parameter that could also be of type
'int', because then 0 assignment will use that
operator. In function's case, this means that the
assignment operator template has got to go:
template<typename Functor>
function& operator=([const] Functor [&]f)
Idea 2:
function is there to take either a function or a
functor, while bind can be used to turn a member
function into a functor. I was just wondering,
wouldn't it be easier (and maybe even more
consistent) if 'bind' could take either a function
or a member function, and 'function' only functors?
Geurt
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk