- explicit SingletonThreadLocal(CreateFunc createFunc)
- : singleton_([createFunc = std::move(createFunc)]() mutable {
- return new ThreadLocalT([createFunc =
- std::move(createFunc)]() mutable {
- return new Wrapper(std::unique_ptr<T>(createFunc()));
+ template <typename Create>
+ FOLLY_NOINLINE explicit SingletonThreadLocal(Create create)
+ : singleton_([create = std::move(create)]() mutable {
+ return new ThreadLocalT([create = std::move(create)]() mutable {
+ return new Wrapper(std::unique_ptr<T>(create()));