Wrap lambda in std::function because of boost version issues
This commit is contained in:
parent
921235b2dc
commit
f2bace6c1f
@ -271,7 +271,9 @@ void writeBoolVector(tar::FileWriter &writer, const std::string &name, const Vec
|
|||||||
writer.WriteElementCount64(name, count);
|
writer.WriteElementCount64(name, count);
|
||||||
std::uint64_t index = 0;
|
std::uint64_t index = 0;
|
||||||
|
|
||||||
const auto encode = [&]() {
|
// FIXME on old boost version the function_input_iterator does not work with lambdas
|
||||||
|
// so we need to wrap it in a function here.
|
||||||
|
const std::function<char()> encode_function = [&]() -> char {
|
||||||
auto write_size = std::min<std::size_t>(count - index, CHAR_BIT);
|
auto write_size = std::min<std::size_t>(count - index, CHAR_BIT);
|
||||||
auto packed = packBits(data, index, write_size);
|
auto packed = packBits(data, index, write_size);
|
||||||
index += CHAR_BIT;
|
index += CHAR_BIT;
|
||||||
@ -280,7 +282,7 @@ void writeBoolVector(tar::FileWriter &writer, const std::string &name, const Vec
|
|||||||
|
|
||||||
std::uint64_t number_of_blocks = std::ceil((double)count / CHAR_BIT);
|
std::uint64_t number_of_blocks = std::ceil((double)count / CHAR_BIT);
|
||||||
writer.WriteStreaming<unsigned char>(
|
writer.WriteStreaming<unsigned char>(
|
||||||
name, boost::make_function_input_iterator(encode, boost::infinite()), number_of_blocks);
|
name, boost::make_function_input_iterator(encode_function, boost::infinite()), number_of_blocks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,7 +589,7 @@ void ExtractionContainers::WriteNodes(storage::tar::FileWriter &writer) const
|
|||||||
auto node_id_iterator = used_node_id_list.begin();
|
auto node_id_iterator = used_node_id_list.begin();
|
||||||
const auto all_nodes_list_end = all_nodes_list.end();
|
const auto all_nodes_list_end = all_nodes_list.end();
|
||||||
|
|
||||||
const auto encode = [&]() {
|
const std::function<QueryNode()> encode_function = [&]() -> QueryNode {
|
||||||
BOOST_ASSERT(node_id_iterator != used_node_id_list.end());
|
BOOST_ASSERT(node_id_iterator != used_node_id_list.end());
|
||||||
BOOST_ASSERT(node_iterator != all_nodes_list_end);
|
BOOST_ASSERT(node_iterator != all_nodes_list_end);
|
||||||
BOOST_ASSERT(*node_id_iterator >= node_iterator->node_id);
|
BOOST_ASSERT(*node_id_iterator >= node_iterator->node_id);
|
||||||
@ -613,7 +613,7 @@ void ExtractionContainers::WriteNodes(storage::tar::FileWriter &writer) const
|
|||||||
writer.WriteElementCount64("/extractor/nodes", used_node_id_list.size());
|
writer.WriteElementCount64("/extractor/nodes", used_node_id_list.size());
|
||||||
writer.WriteStreaming<QueryNode>(
|
writer.WriteStreaming<QueryNode>(
|
||||||
"/extractor/nodes",
|
"/extractor/nodes",
|
||||||
boost::make_function_input_iterator(encode, boost::infinite()),
|
boost::make_function_input_iterator(encode_function, boost::infinite()),
|
||||||
used_node_id_list.size());
|
used_node_id_list.size());
|
||||||
|
|
||||||
TIMER_STOP(write_nodes);
|
TIMER_STOP(write_nodes);
|
||||||
|
Loading…
Reference in New Issue
Block a user