summaryrefslogtreecommitdiff
path: root/src/mongo/util/optional_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/optional_util.h')
-rw-r--r--src/mongo/util/optional_util.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/util/optional_util.h b/src/mongo/util/optional_util.h
index dca4ab7b7c4..e1820af7320 100644
--- a/src/mongo/util/optional_util.h
+++ b/src/mongo/util/optional_util.h
@@ -139,4 +139,15 @@ template <typename T, std::enable_if_t<canStreamWithExtension<T>, int> = 0>
Extension(const T& t)->Extension<T>;
} // namespace optional_io
+
+namespace optional_util {
+template <typename T, typename U>
+void setOrAdd(boost::optional<T>& counter, U value) {
+ if (!counter) {
+ counter = value;
+ return;
+ }
+ counter = *counter + value;
+}
+} // namespace optional_util
} // namespace mongo