//!smart_ptr - std::ptrdiff_t. Never throws. smart_ptr operator- (std::ptrdiff_t offset) const { return smart_ptr(this->get()-offset); }
smart_ptr<T>& operator = (smart_ptr<T> &t) { return smart_ptr(t); }