summaryrefslogtreecommitdiff
path: root/src/mongo/bson/bson_field.h
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2017-11-10 11:30:52 -0500
committerGeert Bosch <geert@mongodb.com>2018-01-05 16:44:54 -0500
commite0c177cbb21110a5f18f920d5ec08e375b303157 (patch)
tree22e31b753995b146aa23b908700813f071d9c0e8 /src/mongo/bson/bson_field.h
parent87c1731e3e077ca9e8b750ebe4b3fef534f1cbe6 (diff)
downloadmongo-e0c177cbb21110a5f18f920d5ec08e375b303157.tar.gz
SERVER-31911 make UUID constructor private
Diffstat (limited to 'src/mongo/bson/bson_field.h')
-rw-r--r--src/mongo/bson/bson_field.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/bson/bson_field.h b/src/mongo/bson/bson_field.h
index 7e33df63ca2..1933dce26ed 100644
--- a/src/mongo/bson/bson_field.h
+++ b/src/mongo/bson/bson_field.h
@@ -29,6 +29,8 @@
#include <string>
+#include <boost/optional.hpp>
+
#include "mongo/bson/bsonobj.h"
namespace mongo {
@@ -88,10 +90,9 @@ private:
template <typename T>
class BSONField {
public:
- BSONField(const std::string& name) : _name(name), _defaultSet(false) {}
+ BSONField(const std::string& name) : _name(name) {}
- BSONField(const std::string& name, const T& defaultVal)
- : _name(name), _default(defaultVal), _defaultSet(true) {}
+ BSONField(const std::string& name, const T& defaultVal) : _name(name), _default(defaultVal) {}
BSONFieldValue<T> make(const T& t) const {
return BSONFieldValue<T>(_name, t);
@@ -106,11 +107,11 @@ public:
}
const T& getDefault() const {
- return _default;
+ return *_default;
}
bool hasDefault() const {
- return _defaultSet;
+ return bool(_default);
}
std::string operator()() const {
@@ -133,8 +134,7 @@ public:
private:
std::string _name;
- T _default;
- bool _defaultSet;
+ boost::optional<T> _default;
};
} // namespace mongo