1#ifndef CAPYDI_RESOLUTION_OVERRIDES_HPP_
2#define CAPYDI_RESOLUTION_OVERRIDES_HPP_
13template<
typename... Overrides>
17 using OverrideHasBeenUsedFlag = bool;
19 template<
typename Overr
ide>
22 Override stored_override;
23 mutable OverrideHasBeenUsedFlag used;
26 using ConfigsContainer = std::tuple<
27 OverrideCell<Overrides>...
32 : overrides_ { OverrideCell {
33 .stored_override = std::move(overrides),
38 template<
typename Overr
ide>
45 const OverrideCell<Override>& override_cell
46 = std::get<OverrideCell<Override>>(this->overrides_);
48 override_cell.used =
true;
50 return override_cell.stored_override;
60 return std::apply([](
auto&&... cells){
61 return (cells.used && ...);
67 return std::apply([](
auto&&... cells){
68 ((cells.used =
false), ...);
73 ConfigsContainer overrides_;
constexpr bool validate() const
Definition ResolutionOverrides.hpp:58
constexpr ResolutionOverrides(Overrides &&... overrides)
Definition ResolutionOverrides.hpp:31
constexpr void reset() const
Definition ResolutionOverrides.hpp:65
constexpr std::optional< Override > retrieve_override() const
Definition ResolutionOverrides.hpp:39
Definition Decorator.hpp:19