#ifndef MBGL_UTIL_PTR #define MBGL_UTIL_PTR #include #include namespace mbgl { namespace util { template class ptr : public ::std::shared_ptr { public: template inline ptr(Args &&... args) : ::std::shared_ptr(::std::forward(args)...) {} inline auto operator->() const -> decltype(this->::std::shared_ptr::operator->()) { assert(*this); return ::std::shared_ptr::operator->(); } inline auto operator*() const -> decltype(this->::std::shared_ptr::operator*()) { assert(*this); return ::std::shared_ptr::operator*(); } }; } } #endif