refactor: Require std::input_iterator for all InputIterator in prevector

This commit is contained in:
MarcoFalke 2024-02-21 12:42:59 +01:00
parent d444441900
commit fa7b9b99a2
No known key found for this signature in database

View file

@ -5,13 +5,13 @@
#ifndef BITCOIN_PREVECTOR_H
#define BITCOIN_PREVECTOR_H
#include <assert.h>
#include <cstdlib>
#include <stdint.h>
#include <string.h>
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <iterator>
#include <type_traits>
#include <utility>
@ -210,7 +210,7 @@ private:
std::fill_n(dst, count, value);
}
template<typename InputIterator>
template <std::input_iterator InputIterator>
void fill(T* dst, InputIterator first, InputIterator last) {
while (first != last) {
new(static_cast<void*>(dst)) T(*first);
@ -229,7 +229,7 @@ public:
fill(item_ptr(0), n, val);
}
template<typename InputIterator>
template <std::input_iterator InputIterator>
void assign(InputIterator first, InputIterator last) {
size_type n = last - first;
clear();
@ -252,7 +252,7 @@ public:
fill(item_ptr(0), n, val);
}
template<typename InputIterator>
template <std::input_iterator InputIterator>
prevector(InputIterator first, InputIterator last) {
size_type n = last - first;
change_capacity(n);
@ -381,7 +381,7 @@ public:
fill(item_ptr(p), count, value);
}
template<typename InputIterator>
template <std::input_iterator InputIterator>
void insert(iterator pos, InputIterator first, InputIterator last) {
size_type p = pos - begin();
difference_type count = last - first;