18 #include <type_traits>
22 #if SEQAN3_WORKAROUND_GCC_NO_CXX11_ABI || SEQAN3_WORKAROUND_GCC_83328
25 namespace seqan3::detail
31 template <
typename basic_
string_t>
38 template <
typename value_t,
typename traits_t,
typename allocator_t>
39 struct is_basic_string<
std::basic_string<value_t, traits_t, allocator_t>> :
std::true_type
45 template <
typename basic_
string_t>
46 constexpr
bool is_basic_string_v = is_basic_string<basic_string_t>::value;
72 template <
typename type>
73 SEQAN3_CONCEPT
container = requires (type val, type val2, type
const cval,
typename type::iterator it)
76 typename type::value_type;
77 typename type::reference;
78 typename type::const_reference;
112 requires !std::equality_comparable<typename type::value_type> || std::equality_comparable<type>;
140 template <
typename type>
146 { type(
typename type::size_type{},
typename type::value_type{}) };
147 { type{val2.begin(), val2.end()} };
152 { val.assign(val2.begin(), val2.end()) };
154 { val.assign(
typename type::size_type{},
typename type::value_type{}) };
160 #if SEQAN3_WORKAROUND_GCC_NO_CXX11_ABI
163 std::same_as,
typename type::iterator);
166 requires detail::is_basic_string_v<type> || requires(type val, type val2)
168 requires requires(type val, type val2)
173 std::same_as,
typename type::iterator);
175 std::same_as,
typename type::iterator);
177 std::same_as,
typename type::iterator);
178 #if SEQAN3_WORKAROUND_GCC_83328
181 requires detail::is_basic_string_v<type> || requires(type val)
186 std::same_as,
typename type::iterator);
189 #if SEQAN3_WORKAROUND_GCC_NO_CXX11_ABI
191 requires detail::is_basic_string_v<type> || requires(type val)
193 requires requires(type val)
229 template <
typename type>
258 template <
typename type>
The <concepts> header from C++20's standard library.
The (most general) container concept as defined by the standard library.
A more refined container concept than seqan3::sequence_container.
A more refined container concept than seqan3::random_access_container.
A more refined container concept than seqan3::container.
The <iterator> header from C++20's standard library.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
SeqAn specific customisations in the standard namespace.