SeqAn3  3.0.1
The Modern C++ library for sequence analysis.
alignment_trace_matrix_proxy.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 
17 #include <seqan3/std/concepts>
18 
19 namespace seqan3::detail
20 {
21 
32 template <typename coordinate_type, typename trace_type>
33 struct alignment_trace_matrix_proxy
34 {
35  static_assert(std::same_as<trace_type, trace_directions> || simd_concept<trace_type> ||
36  decays_to_ignore_v<trace_type>,
37  "Value type must either be a trace_directions object, a simd vector over such or std::ignore.");
38 
39  coordinate_type coordinate{};
40  trace_type & current;
41  trace_type & r_left;
42  trace_type & w_left;
43  trace_type & up;
44 };
45 
46 } // namespace seqan3::detail
concept.hpp
Provides seqan3::simd::simd_concept.
concepts
The Concepts library.
trace_directions.hpp
Provides the declaration of seqan3::detail::trace_directions.
same_as
The concept std::same_as<T, U> is satisfied if and only if T and U denote the same type.