SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
adaptor_for_view_without_args.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2021, 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 
14 #pragma once
15 
17 
18 namespace seqan3::detail
19 {
20 
21 // ============================================================================
22 // adaptor_for_view_without_args
23 // ============================================================================
24 
48 template <template <typename, typename ...> typename view_type>
49 class adaptor_for_view_without_args : public adaptor_base<adaptor_for_view_without_args<view_type>>
50 {
51 private:
53  using base_type = adaptor_base<adaptor_for_view_without_args<view_type>>;
54 
56  friend base_type;
57 
64  template <typename ...arg_types>
65  static auto impl(arg_types && ... args)
66  {
67  return view_type{std::forward<arg_types>(args)...};
68  }
69 
70 public:
75  constexpr adaptor_for_view_without_args() = default;
77  constexpr adaptor_for_view_without_args(adaptor_for_view_without_args const &) noexcept = default;
79  constexpr adaptor_for_view_without_args(adaptor_for_view_without_args &&) noexcept = default;
81  constexpr adaptor_for_view_without_args & operator=(adaptor_for_view_without_args const &) noexcept = default;
83  constexpr adaptor_for_view_without_args & operator=(adaptor_for_view_without_args &&) noexcept = default;
85  ~adaptor_for_view_without_args() noexcept = default;
86 
88  using base_type::base_type;
90 };
91 
92 } // namespace seqan3::detail
Provides seqan3::detail::adaptor_base and seqan3::detail::combined_adaptor.