SeqAn3  3.0.2
The Modern C++ library for sequence analysis.
execution.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2020, Knut Reinert & MPI für molekulare Genetik
4 // This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5 // shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6 // -----------------------------------------------------------------------------------------------------
7 
13 #pragma once
14 
15 #include <seqan3/core/platform.hpp>
16 
22 namespace seqan3
23 {
31 {};
32 
37 {};
38 
43 {};
44 
49 {};
50 
54 inline constexpr sequenced_policy seq{};
55 
59 inline constexpr parallel_policy par{};
60 
65 
69 inline constexpr unsequenced_policy unseq{};
70 
74 template <class t>
76 {};
77 
79 template <>
81 {};
82 
83 template <>
84 struct is_execution_policy<parallel_policy> : std::true_type
85 {};
86 
87 template <>
88 struct is_execution_policy<parallel_unsequenced_policy> : std::true_type
89 {};
90 
91 template <>
92 struct is_execution_policy<unsequenced_policy> : std::true_type
93 {};
95 
99 template <class t>
100 inline constexpr bool is_execution_policy_v = is_execution_policy<t>::value;
102 } // namespace seqan3
seqan3::unseq
constexpr unsequenced_policy unseq
Global execution policy object for unsequenced execution policy.
Definition: execution.hpp:69
std::false_type
seqan3::is_execution_policy
Test whether a class represents an execution policy.
Definition: execution.hpp:76
seqan3::parallel_unsequenced_policy
Parallel and unsequenced execution policy.
Definition: execution.hpp:43
seqan3::seq
constexpr sequenced_policy seq
Global execution policy object for sequenced execution policy.
Definition: execution.hpp:54
seqan3::parallel_policy
Parallel execution policy.
Definition: execution.hpp:37
seqan3::par
constexpr parallel_policy par
Global execution policy object for parallel execution policy.
Definition: execution.hpp:59
seqan3::sequenced_policy
Sequenced execution policy.
Definition: execution.hpp:31
seqan3
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
platform.hpp
Provides platform and dependency checks.
seqan3::par_unseq
constexpr parallel_unsequenced_policy par_unseq
Global execution policy object for parallel and unsequenced execution policy.
Definition: execution.hpp:64
seqan3::unsequenced_policy
Unsequenced execution policy.
Definition: execution.hpp:49