#pragma once #include "thread_extra.h" #include #include template class TVectorType = TVector> class TTempTlsVector { private: struct TTagForTls {}; TVectorType>* Vector; public: TVectorType>* GetVector() { return Vector; } TTempTlsVector() { Vector = FastTlsSingletonWithTag>, TTagForTls>(); Y_ASSERT(Vector->empty()); } ~TTempTlsVector() { Clear(); } void Clear() { Vector->clear(); } size_t Capacity() const noexcept { return Vector->capacity(); } void Shrink() { Vector->shrink_to_fit(); } };