SeqAn3  3.0.0
The Modern C++ library for sequence analysis.
execution.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2019, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2019, 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
constexpr parallel_policy par
Global execution policy object for parallel execution policy.
Definition: execution.hpp:59
Provides platform and dependency checks.
Unsequenced execution policy.
Definition: execution.hpp:48
constexpr sequenced_policy seq
Global execution policy object for sequenced execution policy.
Definition: execution.hpp:54
The main SeqAn3 namespace.
constexpr unsequenced_policy unseq
Global execution policy object for unsequenced execution policy.
Definition: execution.hpp:69
Parallel and unsequenced execution policy.
Definition: execution.hpp:42
constexpr parallel_unsequenced_policy par_unseq
Global execution policy object for parallel and unsequenced execution policy.
Definition: execution.hpp:64
Sequenced execution policy.
Definition: execution.hpp:30
Parallel execution policy.
Definition: execution.hpp:36
Test whether a class represents an execution policy.
Definition: execution.hpp:75