13#if !defined(ULTRA_MULTI_DATASET_H)
14#define ULTRA_MULTI_DATASET_H
16#include "utility/assert.h"
17#include "utility/misc.h"
37template<
class DAT>
concept DataSet = std::ranges::sized_range<DAT>;
59 [[nodiscard]]
const D &
selected() const noexcept;
60 [[nodiscard]] D &
selected() noexcept;
61 [[nodiscard]] const D &operator[](
dataset_t) const noexcept;
62 [[nodiscard]] D &operator[](
dataset_t) noexcept;
67 static constexpr
std::
size_t dataset_count = 3;
68 static_assert(
std::to_underlying(
dataset_t::test) + 1 == dataset_count,
69 "dataset_t enumerators must be contiguous and zero-based");
72 std::array<D, dataset_count> datasets_;
75 dataset_t selected_ {dataset_t::training};
Definition multi_dataset.h:50
void select(dataset_t) noexcept
Definition multi_dataset.h:84
const D & selected() const noexcept
Definition multi_dataset.h:27
Definition multi_dataset.h:37
dataset_t
Definition multi_dataset.h:32
constexpr bool is_multi_dataset_v
Convenience variable template for is_multi_dataset.
Definition multi_dataset.h:89
Definition multi_dataset.h:85