19#if SEQAN3_WORKAROUND_GCC_NO_CXX11_ABI
28template <
typename basic_
string_t>
35template <
typename value_t,
typename traits_t,
typename allocator_t>
42template <
typename basic_
string_t>
69template <
typename type>
72 typename type::value_type;
73 typename type::reference;
74 typename type::const_reference;
96 { type{} } -> std::same_as<type>;
97 { type{type{}} } -> std::same_as<type>;
98 {
val =
val2 } -> std::same_as<type &>;
101 {
val.begin() } -> std::same_as<typename type::iterator>;
102 {
val.end() } -> std::same_as<typename type::iterator>;
103 {
cval.begin() } -> std::same_as<typename type::const_iterator>;
104 {
cval.end() } -> std::same_as<typename type::const_iterator>;
105 {
val.cbegin() } -> std::same_as<typename type::const_iterator>;
106 {
val.cend() } -> std::same_as<typename type::const_iterator>;
108 requires !std::equality_comparable<typename type::value_type> || std::equality_comparable<type>;
110 {
val.swap(
val2) } -> std::same_as<void>;
114 {
val.size() } -> std::same_as<typename type::size_type>;
115 {
val.max_size() } -> std::same_as<typename type::size_type>;
116 {
val.empty() } -> std::same_as<bool>;
136template <
typename type>
141 { type(
typename type::size_type{},
typename type::value_type{}) };
149 {
val.assign(
typename type::size_type{},
typename type::value_type{}) };
154#if SEQAN3_WORKAROUND_GCC_NO_CXX11_ABI
155 {
val.insert(
val.begin(),
val2.front()) } -> std::same_as<typename type::iterator>;
156 {
val.insert(
val.begin(),
typename type::value_type{}) } -> std::same_as<typename type::iterator>;
159 requires detail::is_basic_string_v<type>
160 ||
requires (type
val, type
val2)
162 requires requires (type
val, type
val2)
165 {
val.insert(
val.cbegin(),
val2.front()) } -> std::same_as<typename type::iterator>;
166 {
val.insert(
val.cbegin(),
typename type::value_type{}) } -> std::same_as<typename type::iterator>;
168 val.insert(
val.cbegin(),
typename type::size_type{},
typename type::value_type{})
169 } -> std::same_as<typename type::iterator>;
170 {
val.insert(
val.cbegin(),
val2.begin(),
val2.end()) } -> std::same_as<typename type::iterator>;
173 } -> std::same_as<typename type::iterator>;
176#if SEQAN3_WORKAROUND_GCC_NO_CXX11_ABI
178 requires detail::is_basic_string_v<type>
179 ||
requires (type
val)
181 requires requires (type
val)
184 {
val.erase(
val.cbegin()) } -> std::same_as<typename type::iterator>;
185 {
val.erase(
val.cbegin(),
val.cend()) } -> std::same_as<typename type::iterator>;
188 {
val.push_back(
val.front()) } -> std::same_as<void>;
189 {
val.push_back(
typename type::value_type{}) } -> std::same_as<void>;
190 {
val.pop_back() } -> std::same_as<void>;
191 {
val.clear() } -> std::same_as<void>;
194 {
val.front() } -> std::same_as<typename type::reference>;
195 {
cval.front() } -> std::same_as<typename type::const_reference>;
196 {
val.back() } -> std::same_as<typename type::reference>;
197 {
cval.back() } -> std::same_as<typename type::const_reference>;
217template <
typename type>
222 {
val[0] } -> std::same_as<typename type::reference>;
223 {
val.at(0) } -> std::same_as<typename type::reference>;
226 {
val.resize(0) } -> std::same_as<void>;
227 {
val.resize(0,
typename type::value_type{}) } -> std::same_as<void>;
245template <
typename type>
249 {
val.capacity() } -> std::same_as<typename type::size_type>;
250 {
val.reserve(0) } -> std::same_as<void>;
251 {
val.shrink_to_fit() } -> std::same_as<void>;
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 internal SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
The main SeqAn3 namespace.
Definition aligned_sequence_concept.hpp:26
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition configuration.hpp:412
SeqAn specific customisations in the standard namespace.