* @brief Return an iterator pointing to the first element of
* the container.
* @param __cont Container.
+ * @since C++11
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return an iterator pointing to one past the last element of
* the container.
* @param __cont Container.
+ * @since C++11
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return an iterator pointing to one past the last element of
* the const container.
* @param __cont Container.
+ * @since C++11
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
/**
* @brief Return an iterator pointing to the first element of the array.
* @param __arr Array.
+ * @since C++11
*/
template<typename _Tp, size_t _Nm>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return an iterator pointing to one past the last element
* of the array.
* @param __arr Array.
+ * @since C++11
*/
template<typename _Tp, size_t _Nm>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return an iterator pointing to the first element of
* the const container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return an iterator pointing to one past the last element of
* the const container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return a reverse iterator pointing to the last element of
* the container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return a reverse iterator pointing to the last element of
* the const container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return a reverse iterator pointing one past the first element of
* the container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return a reverse iterator pointing one past the first element of
* the const container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return a reverse iterator pointing to the last element of
* the array.
* @param __arr Array.
+ * @since C++14
*/
template<typename _Tp, size_t _Nm>
[[__nodiscard__]]
* @brief Return a reverse iterator pointing one past the first element of
* the array.
* @param __arr Array.
+ * @since C++14
*/
template<typename _Tp, size_t _Nm>
[[__nodiscard__]]
* @brief Return a reverse iterator pointing to the last element of
* the initializer_list.
* @param __il initializer_list.
+ * @since C++14
*/
template<typename _Tp>
[[__nodiscard__]]
* @brief Return a reverse iterator pointing one past the first element of
* the initializer_list.
* @param __il initializer_list.
+ * @since C++14
*/
template<typename _Tp>
[[__nodiscard__]]
* @brief Return a reverse iterator pointing to the last element of
* the const container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
* @brief Return a reverse iterator pointing one past the first element of
* the const container.
* @param __cont Container.
+ * @since C++14
*/
template<typename _Container>
[[__nodiscard__, __gnu__::__always_inline__]]
/**
* @brief Return the size of a container.
* @param __cont Container.
+ * @since C++17
*/
template <typename _Container>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return the size of an array.
+ * @param - An array.
+ * @return The number of elements in the array.
+ * @since C++17
*/
template <typename _Tp, size_t _Nm>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return whether a container is empty.
* @param __cont Container.
+ * @since C++17
*/
template <typename _Container>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return whether an array is empty (always false).
+ * @param - An array.
+ * @since C++17
*/
template <typename _Tp, size_t _Nm>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return whether an initializer_list is empty.
* @param __il Initializer list.
+ * @since C++17
*/
template <typename _Tp>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return the data pointer of a container.
* @param __cont Container.
+ * @since C++17
*/
template <typename _Container>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return the data pointer of a const container.
* @param __cont Container.
+ * @since C++17
*/
template <typename _Container>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return the data pointer of an array.
* @param __array Array.
+ * @since C++17
*/
template <typename _Tp, size_t _Nm>
[[nodiscard, __gnu__::__always_inline__]]
/**
* @brief Return the data pointer of an initializer list.
* @param __il Initializer list.
+ * @since C++17
*/
template <typename _Tp>
[[nodiscard, __gnu__::__always_inline__]]
#endif // __glibcxx_nonmember_container_access
#ifdef __glibcxx_ssize // C++ >= 20
+ /**
+ * @brief Return the size of a container, as a signed integer.
+ * @param __cont Container.
+ * @since C++20
+ */
template<typename _Container>
[[nodiscard, __gnu__::__always_inline__]]
constexpr auto
return static_cast<common_type_t<ptrdiff_t, type>>(__cont.size());
}
+ /**
+ * @brief Return the length of an array, as a signed integer.
+ * @since C++20
+ */
template<typename _Tp, ptrdiff_t _Num>
[[nodiscard, __gnu__::__always_inline__]]
constexpr ptrdiff_t