Можно ли создать еще один конструктор BlockInputIterator, чтобы использовать перемещение вместо копии для std::vector
?Переместить вместо копии для boost :: dynamic_bitset Конструктор BlockInputIterator?
Я считаю, что следующие виды использования конструктора копирования boost docs:
template <typename BlockInputIterator>
dynamic_bitset(
BlockInputIterator first,
BlockInputIterator last,
const Allocator& alloc = Allocator());
Вот код, который я написал, чтобы показать, что я спрашиваю:
#include <iostream>
#include <vector>
#include <boost/dynamic_bitset.hpp>
using namespace std;
using namespace boost;
int main(int argc, char* argv[])
{
// Notice the vector opposed to dynamic_bitset
vector<uint8_t> data;
// put in dummy data
data.push_back(0x1a);
data.push_back(0xcf);
data.push_back(0xfc);
data.push_back(0x1d);
for (auto i = data.begin(); i != data.end(); ++i)
{
cout << hex << (int)*i << dec << ' ';
}
cout << std;
cout << "data.data(): " << hex << (uint64_t)data.data() << dec << endl;
// I believe this is a copy opposed to a move
boost::dynamic_bitset<uint8_t> bs0(data.begin(), data.end());
// I would like to be able to do this which would use move,
// is that possible considering the vector?
boost::dynamic_bitset<uint8_t> bs1 = data;
return 0;
}
Поэтому в основном я интересно, если импульс может добавить дополнительный конструктор в boost::dynamic_bitset
, чтобы использовать перемещение вместо копии для std::vector
?
Не должно быть сложно предложить функцию и PR. Я бы, однако, знаю заранее, что они захотят разместить C++ 03 с BOOST_MOVE, и я не знаю, как его использовать. – sehe
Да, я хотел предложить дополнительную библиотеку, но хотел убедиться, что это возможно даже в первую очередь. :) – bantl23
Сначала это не просто (и с итераторами это не сработает, но я предполагаю, что вы не против переходить из контейнеров?) – sehe