Concept that models an STL-like container.
More...
#include <concepts.hpp>
template<class T>
requires std::regular<T>;
requires std::swappable<T>;
requires std::same_as<typename T::reference, typename T::value_type &>;
requires std::same_as<typename T::const_reference, const typename T::value_type &>;
requires std::forward_iterator<typename T::iterator>;
requires std::forward_iterator<typename T::const_iterator>;
requires std::signed_integral<typename T::difference_type>;
requires std::same_as<typename T::difference_type, typename std::iterator_traits<typename T::iterator>::difference_type>;
requires std::same_as<typename T::difference_type, typename std::iterator_traits<typename T::const_iterator>::difference_type>;
{ a.begin() } -> std::same_as<typename T::iterator>;
{ a.end() } -> std::same_as<typename T::iterator>;
{ b.begin() } -> std::same_as<typename T::const_iterator>;
{ b.end() } -> std::same_as<typename T::const_iterator>;
{ a.cbegin() } -> std::same_as<typename T::const_iterator>;
{ a.cend() } -> std::same_as<typename T::const_iterator>;
{ a.size() } -> std::same_as<typename T::size_type>;
{ a.max_size() } -> std::same_as<typename T::size_type>;
{ a.empty() } -> std::convertible_to<bool>;
}
Concept that models an STL-like container.
Definition concepts.hpp:245
Concept to check if a container supports erasing of elements.
Definition concepts.hpp:230
Concept that models an STL-like container.
Requires the type to satisfy several container properties including:
- Regular, swappable
- Supports erasing elements
- Provides iterator, const_iterator with forward_iterator concept
- Has difference_type and size_type types
- Provides begin(), end(), cbegin(), cend(), size(), max_size(), empty()
- Template Parameters
-
T | Container type to check. |