11#include "../io/ParameterMap.h"
12#include "../utils/error_handling.h"
13#include "galaxy/disk_galaxy.h"
186namespace model_detail
197using model_variant = std::variant<DummyModel, ClusteredDiskGalaxy>;
200template <
typename T,
typename variant>
203template <
typename T,
typename... Types>
217 std::vector<model_detail::model_variant> vec_;
238 template <
typename T>
241 static_assert(model_detail::is_model_type<T>,
"T isn't a known model type");
242 for (
const model_detail::model_variant& v : vec_) {
243 const T* ptr = std::get_if<T>(&v);
244 if (ptr !=
nullptr)
return ptr;
Holds a collection of models.
Definition model_collection.h:215
ModelCollection()=default
default constructor
const T * try_get() const
Try to retrieve a model of the specified type.
Definition model_collection.h:239
A class that provides map-like access to parameter files.
Definition ParameterMap.h:74
Definition model_collection.h:190
Definition model_collection.h:201