clean-code/VectorFiller/atlas/collection/VectorFactory.h

20 lines
421 B
C++

// -*- mode: c++ -*-
#pragma once
#include <memory>
#include <vector>
namespace atlas::collection {
template <typename T>
class VectorFactory {
public:
using base_type = VectorFactory<T>;
using value_type = std::vector<T>;
using product_type = std::shared_ptr<value_type>;
virtual ~VectorFactory() = default;
[[nodiscard]] virtual auto createAndFillVector(size_t const) -> product_type = 0;
};
}