template class std::shared_ptrΒΆ