#pragma once #include "../VectorFactory.h" namespace atlas::collection { template class AbstractVectorFactory : public VectorFactory { public: using base_type = VectorFactory; auto createAndFillVector(size_t const size) -> typename base_type::product_type override final { auto result = std::make_shared>(size); fill(*result); return result; } virtual void fill(std::vector&) = 0; }; }