"David B. Held" wrote:
> > [...]
> > template <typename T>
> > void operator()(const T& operand) const
> > {
> > operand.~T();
> > }
> > [...]
>
> Is the destructor really a const function?
>
> Dave
>
The object being destroyed is the formal parameter "operand". The object whose operator() is called is not changed at all, thus the 'const' qualification is in place.
-Itay.