|
template<typename IndexType = long long> |
constexpr decltype(auto) | counting_iterator (IndexType idx=IndexType{}) |
|
template<template< typename, typename... > class ContainerType, typename ExecutionPolicy , typename OperationType , std::integral RangeType, std::integral... RangeTypes>
requires requires { { operation(head, tails...) } noexcept ; } |
constexpr decltype(auto) | go_std_parallel (ExecutionPolicy &&execution_policy, OperationType &&operation, RangeType head, RangeTypes... tails) noexcept |
|
template<typename OperationType , std::integral RangeType, std::integral... RangeTypes>
requires requires { { operation(head, tails... ) } noexcept; } |
constexpr decltype(auto) | go_std_parallel (OperationType &&operation, RangeType head, RangeTypes... tails) noexcept |
|
template<template< typename, typename... > class ContainerType, typename ExecutionPolicy , typename OperationType , std::integral RangeType, std::integral... RangeTypes>
requires cgt::valid_type_c<decltype(hidden::resultant_element_type(operation, head, tails...))> |
decltype(auto) | go_std_parallel_exception_safe (ExecutionPolicy &&execution_policy, OperationType &&operation, RangeType head, RangeTypes... tails) |
|
template<template< typename, typename... > class ContainerType, typename ExecutionPolicy , typename OperationType , std::integral RangeType, std::integral... RangeTypes>
requires requires { requires cgt::no_type_c<decltype(hidden::resultant_element_type(operation, head, tails...))>; } |
decltype(auto) | go_std_parallel_exception_safe (ExecutionPolicy &&execution_policy, OperationType &&operation, RangeType head, RangeTypes... tails) |
|
template<typename OperationType , std::integral RangeType, std::integral... RangeTypes> |
decltype(auto) | go_std_parallel_exception_safe (OperationType &&operation, RangeType head, RangeTypes... tails) |
|
template<template< typename, auto > class ContainerType = std::array, typename ExecutionPolicy = cgt::no_type, typename OperationType = cgt::no_type, auto head = 1, auto... tails> |
constexpr decltype(auto) | go_std_parallel (ExecutionPolicy &&execution_policy, OperationType &&operation, cgt::sequence< head, tails... >) |
|
template<typename ExecutionPolicy , typename OperationType , cgt::vector_c ContainerType, cgt::std_array_flat_c... ArrayTypes>
requires (cgt::element_counts_are_the_same(cgt::first_type_t<ContainerType>{}, std::remove_cvref_t<ArrayTypes>{}...)) |
constexpr decltype(auto) | go_std_parallel (ExecutionPolicy &&execution_policy, OperationType &&operation, ContainerType &&container, ArrayTypes &&...arrays) |
|
template<typename ExecutionPolicy , typename OperationType , cgt::vector_c... ContainerTypes>
requires ( sizeof...(ContainerTypes) > 1) |
constexpr decltype(auto) | go_std_parallel (ExecutionPolicy &&execution_policy, OperationType &&operation, ContainerTypes &&... containers) |
|
template<typename ExecutionPolicy , typename OperationType , cgt::std_array_flat_c... ContainerTypes>
requires (sizeof...(ContainerTypes) > 0) (cgt::element_counts_are_the_same(std::remove_cvref_t<ContainerTypes>{}...)) |
constexpr decltype(auto) | go_std_parallel (ExecutionPolicy &&execution_policy, OperationType &&operation, ContainerTypes &&... containers) |
|