SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
seqan3::detail::adl_only::alphabet_size_cpo< alphabet_t > Struct Template Reference

seqan3::detail::customisation_point_object (CPO) definition for seqan3::alphabet_size. More...

#include <seqan3/alphabet/concept.hpp>

+ Inheritance diagram for seqan3::detail::adl_only::alphabet_size_cpo< alphabet_t >:

Public Types

template<typename alphabet_type >
using alphabet_or_type_identity = std::conditional_t< std::is_nothrow_default_constructible_v< std::remove_cvref_t< alphabet_type > > &&seqan3::is_constexpr_default_constructible_v< std::remove_cvref_t< alphabet_type > >, std::remove_cvref_t< alphabet_type >, std::type_identity< alphabet_type > >
 If alphabet_type isn't std::is_nothrow_default_constructible, alphabet_size will be called with std::type_identity instead of a default constructed alphabet.
 
using base_t = detail::customisation_point_object< alphabet_size_cpo< alphabet_t >, 2 >
 CRTP base class seqan3::detail::customisation_point_object.
 

Static Public Member Functions

template<typename alphabet_type = alphabet_t>
static constexpr auto cpo_overload (priority_tag< 0 >) noexcept(auto)
 CPO overload (check 1 out of 3): static member access, i.e. alphabet_type::alphabet_size
 
template<typename alphabet_type = alphabet_t>
static constexpr auto cpo_overload (priority_tag< 1 >) noexcept(auto)
 CPO overload (check 1 out of 3): argument dependent lookup (ADL), i.e. alphabet_size(alphabet_type{})
 
template<typename alphabet_type = alphabet_t>
static constexpr auto cpo_overload (priority_tag< 2 >) noexcept(auto)
 CPO overload (check 1 out of 3): explicit customisation via seqan3::custom::alphabet
 

Additional Inherited Members

- Public Member Functions inherited from seqan3::detail::customisation_point_object< alphabet_size_cpo< alphabet_t >, 2 >
constexpr auto operator() (args_t &&... args) const noexcept(auto)
 SFINAE-friendly call-operator of this seqan3::detail::customisation_point_object instance.
 

Detailed Description

template<typename alphabet_t>
struct seqan3::detail::adl_only::alphabet_size_cpo< alphabet_t >

seqan3::detail::customisation_point_object (CPO) definition for seqan3::alphabet_size.

Template Parameters
alphabet_tThe alphabet type being queried.

Member Function Documentation

◆ cpo_overload() [1/3]

template<typename alphabet_t >
template<typename alphabet_type = alphabet_t>
static constexpr auto seqan3::detail::adl_only::alphabet_size_cpo< alphabet_t >::cpo_overload ( priority_tag< 0 >  )
inlinestaticconstexprnoexcept

CPO overload (check 1 out of 3): static member access, i.e. alphabet_type::alphabet_size

Template Parameters
alphabet_typeThe type of the alphabet. (Needed to defer instantiation for incomplete types.)

◆ cpo_overload() [2/3]

template<typename alphabet_t >
template<typename alphabet_type = alphabet_t>
static constexpr auto seqan3::detail::adl_only::alphabet_size_cpo< alphabet_t >::cpo_overload ( priority_tag< 1 >  )
inlinestaticconstexprnoexcept

CPO overload (check 1 out of 3): argument dependent lookup (ADL), i.e. alphabet_size(alphabet_type{})

Template Parameters
alphabet_typeThe type of the alphabet. (Needed to defer instantiation for incomplete types.)

If the alphabet_type isn't std::is_nothrow_default_constructible, alphabet_size(std::type_identity<alphabet_type>{}) will be called.

◆ cpo_overload() [3/3]

template<typename alphabet_t >
template<typename alphabet_type = alphabet_t>
static constexpr auto seqan3::detail::adl_only::alphabet_size_cpo< alphabet_t >::cpo_overload ( priority_tag< 2 >  )
inlinestaticconstexprnoexcept

CPO overload (check 1 out of 3): explicit customisation via seqan3::custom::alphabet

Template Parameters
alphabet_typeThe type of the alphabet. (Needed to defer instantiation for incomplete types.)

The documentation for this struct was generated from the following file:
Hide me