summaryrefslogtreecommitdiffstats
path: root/include/query/knn.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/query/knn.h')
-rw-r--r--include/query/knn.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/include/query/knn.h b/include/query/knn.h
index 19dcf5c..a227293 100644
--- a/include/query/knn.h
+++ b/include/query/knn.h
@@ -111,10 +111,10 @@ public:
pq.pop();
}
- return results;
+ return std::move(results);
}
- static std::vector<R> merge(std::vector<std::vector<Wrapped<R>>> &results, void *parms) {
+ static std::vector<R> merge(std::vector<std::vector<Wrapped<R>>> &results, void *parms, std::vector<R> &output) {
Parms<R> *p = (Parms<R> *) parms;
R rec = p->point;
size_t k = p->k;
@@ -136,13 +136,12 @@ public:
}
}
- std::vector<R> output;
while (pq.size() > 0) {
output.emplace_back(*pq.peek().data);
pq.pop();
}
- return output;
+ return std::move(output);
}
static void delete_query_state(void *state) {
@@ -154,6 +153,10 @@ public:
auto s = (BufferState<R> *) state;
delete s;
}
+
+ static bool repeat(void *parms, std::vector<R> &results, std::vector<void*> states, void* buffer_state) {
+ return false;
+ }
};
}}