|
- #pragma once
-
- #include <ecs/config.h>
- #include <ecs/core/system/parallelism/composer/fixed_threshold.h>
-
- beg_namespace_ecs_signature_system_parallelism
- {
-
- namespace __impl
- {
- template<typename T_threshold, typename T_lower_strategy, typename T_greater_strategy>
- struct fixed_threshold_builder_t
- {
- struct parameters
- {
- using threshold_type = T_threshold;
- using lower_strategy_type = T_lower_strategy;
- using greater_strategy_type = T_greater_strategy;
-
- static constexpr decltype(auto) get_threshold() noexcept
- { return threshold_type::value; }
- };
-
- constexpr decltype(auto) operator()() const noexcept
- { return ::ecs::core::system::parallelism::fixed_threshold<parameters> { }; }
- };
-
- struct fixed_threshold_t
- {
- template<typename T_threshold, typename T_lower_strategy, typename T_greater_strategy>
- constexpr decltype(auto) operator()(T_threshold, T_lower_strategy, T_greater_strategy) const noexcept
- { return fixed_threshold_builder_t<T_threshold, T_lower_strategy, T_greater_strategy> { }; }
- };
- }
-
- constexpr decltype(auto) fixed_threshold = __impl::fixed_threshold_t { };
-
- }
- end_namespace_ecs_signature_system_parallelism
|