- #pragma once
-
- #include <ecs/config.h>
- #include <ecs/core/system/parallelism/strategy/split_every.h>
-
- namespace ecs {
- namespace signature {
- namespace system {
- namespace parallelism {
-
- namespace detail
- {
- template<typename T_split>
- struct split_every_builder_t
- {
- struct parameters
- {
- static constexpr size_t get_per_split_count() noexcept
- { return T_split::value; }
- };
-
- constexpr decltype(auto) operator()() const noexcept
- { return ::ecs::core::system::parallelism::split_every<parameters> { }; }
- };
-
- struct split_every_t
- {
- template<typename T_split>
- constexpr decltype(auto) operator()(T_split) const noexcept
- { return split_every_builder_t<T_split> { }; }
- };
- }
-
- constexpr decltype(auto) split_every = detail::split_every_t { };
-
- } } } }
|