![]() |
C++ Library Extensions 2022.12.09
To help learn modern C++ programming
|
#include "cpg_iterator.hpp"#include "cpg_vector_operations.hpp"#include "cpg_std_array_tuple_operations.hpp"Go to the source code of this file.
Namespaces | |
| namespace | cpg |
| Includes subnamespace conversion. | |
| namespace | cpg::parallel |
| namespace | cpg::parallel::hidden |
Macros | |
| #define | NOMINMAX |
Functions | |
| template<typename OperationType , typename... ContainerTypes> requires ( cgt::vector_c<ContainerTypes> && ... ) || ( cgt::std_array_flat_c<ContainerTypes> && ... ) | |
| constexpr auto | cpg::parallel::hidden::resultant_element_type (OperationType &&operation, ContainerTypes &&... containers) |
| template<typename OperationType , cgt::vector_c ContainerType, cgt::std_array_flat_c... ArrayTypes> | |
| constexpr auto | cpg::parallel::hidden::resultant_element_type (OperationType &&operation, ContainerType &&container, ArrayTypes &&... arrays) |
| template<typename OperationType , std::integral Dimension, std::integral... Dimensions> | |
| constexpr auto | cpg::parallel::hidden::resultant_element_type (OperationType &&operation, Dimension dim, Dimensions... dims) |
| 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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::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) | cpg::parallel::go_std_parallel (ExecutionPolicy &&execution_policy, OperationType &&operation, ContainerTypes &&... containers) |
| #define NOMINMAX |
Definition at line 10 of file cpg_parallel.hpp.