@@ -26,12 +26,14 @@ struct ibf_config
2626 hash_function_count number_of_hash_functions;
2727};
2828
29- template <typename /* std::ranges::view*/ hash_view_t , data_layout data_layout_mode_ = data_layout::uncompressed>
29+ template <data_layout data_layout_mode_ = data_layout::uncompressed,
30+ typename hash_view_t = decltype (seqan3::views::kmer_hash(seqan3::ungapped(5u ))),
31+ semialphabet alph_t = dna4>
3032class technical_binning_directory : public interleaved_bloom_filter <data_layout_mode_>
3133{
3234private:
3335 // !\cond
34- template <typename /* std::ranges::view */ friend_view_t , data_layout data_layout_mode >
36+ template <data_layout data_layout_mode, typename friend_view_t , semialphabet friend_alph_t >
3537 requires std::same_as<friend_view_t , hash_view_t >
3638 friend class technical_binning_directory ;
3739 // !\endcond
@@ -68,7 +70,7 @@ class technical_binning_directory : public interleaved_bloom_filter<data_layout_
6870 this ->emplace (hash, bin_index{bin_number});
6971 }
7072
71- technical_binning_directory (technical_binning_directory<hash_view_t , data_layout::uncompressed> const & tbd)
73+ technical_binning_directory (technical_binning_directory<data_layout::uncompressed> const & tbd)
7274 // !\cond
7375 requires (data_layout_mode == data_layout::compressed)
7476 // !\endcond
@@ -80,8 +82,9 @@ class technical_binning_directory : public interleaved_bloom_filter<data_layout_
8082 * \{
8183 */
8284// !\brief Deduces the template.
83- template <typename rng_t , typename /* std::ranges::view*/ hash_view_t >
84- technical_binning_directory (std::vector<rng_t >, hash_view_t , ibf_config) -> technical_binning_directory<hash_view_t>;
85+ template <typename rng_t , typename hash_view_t >
86+ technical_binning_directory (std::vector<rng_t >, hash_view_t , ibf_config) ->
87+ technical_binning_directory<data_layout::uncompressed, hash_view_t, range_innermost_value_t<rng_t>>;
8588// !\}
8689
8790} // namespace seqan3
0 commit comments