20 lines
421 B
C++
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;
|
|
};
|
|
}
|