16 namespace Acts::detail {
21 virtual std::any
get(
size_t i) = 0;
22 virtual std::any
get(
size_t i)
const = 0;
24 virtual void add() = 0;
25 virtual void clear() = 0;
27 virtual void erase(
size_t i) = 0;
28 virtual size_t size()
const = 0;
32 virtual std::unique_ptr<DynamicColumnBase>
clone(
33 bool empty =
false)
const = 0;
38 std::any
get(
size_t i)
override {
43 std::any
get(
size_t i)
const override {
54 std::unique_ptr<DynamicColumnBase>
clone(
bool empty)
const override {
56 return std::make_unique<DynamicColumn<T>>();
58 return std::make_unique<DynamicColumn<T>>(*this);
62 size_t srcIdx)
override {
65 "Source column is not of same type as destination");
66 m_vector.at(dstIdx) = other->m_vector.at(srcIdx);
78 std::any
get(
size_t i)
override {
83 std::any
get(
size_t i)
const override {
94 std::unique_ptr<DynamicColumnBase>
clone(
bool empty)
const override {
96 return std::make_unique<DynamicColumn<bool>>();
98 return std::make_unique<DynamicColumn<bool>>(*this);
102 size_t srcIdx)
override {
104 assert(other !=
nullptr &&
105 "Source column is not of same type as destination");
106 m_vector.at(dstIdx) = other->m_vector.at(srcIdx);