20 class Collection :
public std::list<std::shared_ptr<T>>
27 template<
typename... T_>
28 requires ((!std::is_same_v<Collection<T>,T_>) && ...)
29 Collection(
const T_&... x)
31 (this->push_back(x), ...);
34 Collection(std::initializer_list<std::shared_ptr<T>>
init)
35 : std::list<std::shared_ptr<T>>(
init)
39 requires std::is_base_of_v<T,T_>
40 Collection(std::initializer_list<T_> x)
42 for(
const auto& xi : x)
46 Collection(
const Collection<T>& c)
47 : std::list<std::shared_ptr<T>>()
49 for(
const auto& ci : c)
52 this->push_back(std::dynamic_pointer_cast<T>(ci->copy()));
57 requires std::is_base_of_v<T,T_>
58 void push_back(
const T_& x)
60 this->push_back(std::make_shared<T_>(x));
64 requires std::is_base_of_v<T,T_>
65 void push_back(
const std::shared_ptr<T_>& x)
67 this->std::list<std::shared_ptr<T>>::push_back(x);
auto & init()
Initializes all elements of the matrix with default intervals.
Definition codac2_Matrix_addons_IntervalMatrixBase.h:113
Definition codac2_OctaSym.h:21