Functor Class Template - 2
template < typename R , class TList >
class Functor
{
public:
Functor ();
Functor (const Functor& );
Functor& operator= (const Functor& );
explicit Functor (std::auto_ptr<Impl> spImpl) : spImpl_(spImpl) {}
...
private:
typedef FunctorImpl<R, TList> Impl;
std::auto_ptr<Impl> spImpl_; // stored by (smart) pointer
};