#pragma once #include #include namespace mbgl { namespace util { template class ThreadLocal : public noncopyable { public: ThreadLocal(T* val) { ThreadLocal(); set(val); } ThreadLocal(); ~ThreadLocal(); T* get(); void set(T* ptr); private: class Impl; std::unique_ptr impl; }; } // namespace util } // namespace mbgl