Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
tatooine::detail::rectilinear_grid::cell_container< Dimensions > Struct Template Reference

#include <cell_container.h>

Collaboration diagram for tatooine::detail::rectilinear_grid::cell_container< Dimensions >:
[legend]

Public Types

using grid_t = tatooine::rectilinear_grid< Dimensions... >
 
using seq_t = typename grid_t::seq_t
 

Public Member Functions

 cell_container (grid_t const &g)
 
constexpr auto size () const
 
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration>
auto iterate_indices (Iteration &&iteration, execution_policy::sequential_t exec) const -> decltype(auto)
 Sequential iteration. More...
 
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration>
auto iterate_indices (Iteration &&iteration, execution_policy::parallel_t exec) const -> decltype(auto)
 Parallel iteration. More...
 
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration>
auto iterate_indices (Iteration &&iteration) const -> decltype(auto)
 Default iteration. More...
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 

Private Member Functions

template<size_t... Is>
constexpr auto size (std::index_sequence< Is... >) const
 
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration, size_t... Ds>
auto iterate_indices (Iteration &&iteration, execution_policy::sequential_t exec, std::index_sequence< Ds... >) const -> decltype(auto)
 Sequential iteration implementation. More...
 
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration, size_t... Ds>
auto iterate_indices (Iteration &&iteration, execution_policy::parallel_t exec, std::index_sequence< Ds... >) const -> decltype(auto)
 Parallel iteration implementation. More...
 

Private Attributes

grid_t const & m_grid
 

Member Typedef Documentation

◆ grid_t

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::cell_container< Dimensions >::grid_t = tatooine::rectilinear_grid<Dimensions...>

◆ seq_t

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::cell_container< Dimensions >::seq_t = typename grid_t::seq_t

Constructor & Destructor Documentation

◆ cell_container()

template<typename... Dimensions>
tatooine::detail::rectilinear_grid::cell_container< Dimensions >::cell_container ( grid_t const &  g)
inlineexplicit

Member Function Documentation

◆ iterate_indices() [1/5]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration>
auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::iterate_indices ( Iteration &&  iteration) const -> decltype(auto)
inline

Default iteration.

◆ iterate_indices() [2/5]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration>
auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::iterate_indices ( Iteration &&  iteration,
execution_policy::parallel_t  exec 
) const -> decltype(auto)
inline

Parallel iteration.

◆ iterate_indices() [3/5]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration, size_t... Ds>
auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::iterate_indices ( Iteration &&  iteration,
execution_policy::parallel_t  exec,
std::index_sequence< Ds... >   
) const -> decltype(auto)
inlineprivate

Parallel iteration implementation.

◆ iterate_indices() [4/5]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration>
auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::iterate_indices ( Iteration &&  iteration,
execution_policy::sequential_t  exec 
) const -> decltype(auto)
inline

Sequential iteration.

◆ iterate_indices() [5/5]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), size_t{}))... > Iteration, size_t... Ds>
auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::iterate_indices ( Iteration &&  iteration,
execution_policy::sequential_t  exec,
std::index_sequence< Ds... >   
) const -> decltype(auto)
inlineprivate

Sequential iteration implementation.

◆ num_dimensions()

template<typename... Dimensions>
static constexpr auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ size() [1/2]

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::size ( ) const
inlineconstexpr

◆ size() [2/2]

template<typename... Dimensions>
template<size_t... Is>
constexpr auto tatooine::detail::rectilinear_grid::cell_container< Dimensions >::size ( std::index_sequence< Is... >  ) const
inlineconstexprprivate

Member Data Documentation

◆ m_grid

template<typename... Dimensions>
grid_t const& tatooine::detail::rectilinear_grid::cell_container< Dimensions >::m_grid
private

The documentation for this struct was generated from the following file: