summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/document_value/value.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/document_value/value.h')
-rw-r--r--src/mongo/db/exec/document_value/value.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/exec/document_value/value.h b/src/mongo/db/exec/document_value/value.h
index a69494f1995..62a31f25727 100644
--- a/src/mongo/db/exec/document_value/value.h
+++ b/src/mongo/db/exec/document_value/value.h
@@ -430,13 +430,16 @@ public:
ImplicitValue(T&& arg) : Value(std::forward<T>(arg)) {}
ImplicitValue(std::initializer_list<ImplicitValue> values) : Value(convertToValues(values)) {}
+ ImplicitValue(std::vector<ImplicitValue> values) : Value(convertToValues(values)) {}
- ImplicitValue(std::vector<int> values) : Value(convertToValues(values)) {}
+ template <typename T>
+ ImplicitValue(std::vector<T> values) : Value(convertToValues(values)) {}
- static std::vector<Value> convertToValues(const std::vector<int>& vec) {
+ template <typename T>
+ static std::vector<Value> convertToValues(const std::vector<T>& vec) {
std::vector<Value> values;
values.reserve(vec.size());
- for_each(vec.begin(), vec.end(), ([&](const int& val) { values.emplace_back(val); }));
+ for_each(vec.begin(), vec.end(), ([&](const T& val) { values.emplace_back(val); }));
return values;
}