Skip to content

Commit 55fc6f7

Browse files
committed
[WIP] Loosen alphabet_variant requirement
1 parent 1ed89ee commit 55fc6f7

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

include/seqan3/alphabet/composite/alphabet_variant.hpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,22 @@ template <typename... alternative_types>
121121
requires (detail::writable_constexpr_alphabet<alternative_types> && ...) && (std::regular<alternative_types> && ...)
122122
&& (sizeof...(alternative_types) >= 2)
123123
class alphabet_variant :
124-
public alphabet_base<alphabet_variant<alternative_types...>,
125-
(static_cast<size_t>(alphabet_size<alternative_types>) + ...),
126-
char>
124+
public alphabet_base<
125+
alphabet_variant<alternative_types...>,
126+
(static_cast<size_t>(alphabet_size<alternative_types>) + ...),
127+
std::conditional_t<(std::same_as<alphabet_char_t<alternative_types>, char> && ...), char, char16_t>>
127128
{
128129
private:
129130
//!\brief The base type.
130-
using base_t = alphabet_base<alphabet_variant<alternative_types...>,
131-
(static_cast<size_t>(alphabet_size<alternative_types>) + ...),
132-
char>;
133-
134-
static_assert((std::is_same_v<alphabet_char_t<alternative_types>, char> && ...),
135-
"The alphabet_variant is currently only tested for alphabets with char_type char. "
131+
using base_t = alphabet_base<
132+
alphabet_variant<alternative_types...>,
133+
(static_cast<size_t>(alphabet_size<alternative_types>) + ...),
134+
std::conditional_t<(std::same_as<alphabet_char_t<alternative_types>, char> && ...), char, char16_t>>;
135+
136+
static_assert(((std::is_same_v<alphabet_char_t<alternative_types>, char>
137+
|| std::is_same_v<alphabet_char_t<alternative_types>, char16_t>)
138+
&& ...),
139+
"The alphabet_variant is currently only tested for alphabets with char_type char or char16_t. "
136140
"Contact us on GitHub if you have a different use case: https://github.com/seqan/seqan3 .");
137141

138142
//!\brief Befriend the base type.

0 commit comments

Comments
 (0)