diff --git a/include/seqan3/alphabet/composite/alphabet_variant.hpp b/include/seqan3/alphabet/composite/alphabet_variant.hpp index 82b035a997..df411d9218 100644 --- a/include/seqan3/alphabet/composite/alphabet_variant.hpp +++ b/include/seqan3/alphabet/composite/alphabet_variant.hpp @@ -121,18 +121,22 @@ template requires (detail::writable_constexpr_alphabet && ...) && (std::regular && ...) && (sizeof...(alternative_types) >= 2) class alphabet_variant : - public alphabet_base, - (static_cast(alphabet_size) + ...), - char> + public alphabet_base< + alphabet_variant, + (static_cast(alphabet_size) + ...), + std::conditional_t<(std::same_as, char> && ...), char, char16_t>> { private: //!\brief The base type. - using base_t = alphabet_base, - (static_cast(alphabet_size) + ...), - char>; - - static_assert((std::is_same_v, char> && ...), - "The alphabet_variant is currently only tested for alphabets with char_type char. " + using base_t = alphabet_base< + alphabet_variant, + (static_cast(alphabet_size) + ...), + std::conditional_t<(std::same_as, char> && ...), char, char16_t>>; + + static_assert(((std::is_same_v, char> + || std::is_same_v, char16_t>) + && ...), + "The alphabet_variant is currently only tested for alphabets with char_type char or char16_t. " "Contact us on GitHub if you have a different use case: https://github.com/seqan/seqan3 ."); //!\brief Befriend the base type.