File indexing completed on 2026-05-03 08:13:07
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _LIBCPP___ALGORITHM_FILL_H
0010 #define _LIBCPP___ALGORITHM_FILL_H
0011
0012 #include <__algorithm/fill_n.h>
0013 #include <__config>
0014 #include <__iterator/iterator_traits.h>
0015
0016 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0017 # pragma GCC system_header
0018 #endif
0019
0020 _LIBCPP_BEGIN_NAMESPACE_STD
0021
0022
0023
0024 template <class _ForwardIterator, class _Tp>
0025 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
0026 __fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, forward_iterator_tag) {
0027 for (; __first != __last; ++__first)
0028 *__first = __value;
0029 }
0030
0031 template <class _RandomAccessIterator, class _Tp>
0032 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
0033 __fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value, random_access_iterator_tag) {
0034 std::fill_n(__first, __last - __first, __value);
0035 }
0036
0037 template <class _ForwardIterator, class _Tp>
0038 inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
0039 fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) {
0040 std::__fill(__first, __last, __value, typename iterator_traits<_ForwardIterator>::iterator_category());
0041 }
0042
0043 _LIBCPP_END_NAMESPACE_STD
0044
0045 #endif