* implements the actual function call. */
class print_functor {
public:
- print_functor() : impl(0) {}
+ print_functor() : impl(nullptr) {}
print_functor(const print_functor & other) : impl(other.impl.get() ? other.impl->duplicate() : 0) {}
- print_functor(std::auto_ptr<print_functor_impl> impl_) : impl(impl_) {}
+ print_functor(std::unique_ptr<print_functor_impl> impl_) : impl(std::move(impl_)) {}
template <class T, class C>
print_functor(void f(const T &, const C &, unsigned)) : impl(new print_ptrfun_handler<T, C>(f)) {}
bool is_valid() const { return impl.get(); }
private:
- std::auto_ptr<print_functor_impl> impl;
+ std::unique_ptr<print_functor_impl> impl;
};